特許第6834124号(P6834124)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーウェーブの特許一覧

<>
  • 特許6834124-ロボット制御装置 図000027
  • 特許6834124-ロボット制御装置 図000028
  • 特許6834124-ロボット制御装置 図000029
  • 特許6834124-ロボット制御装置 図000030
  • 特許6834124-ロボット制御装置 図000031
  • 特許6834124-ロボット制御装置 図000032
  • 特許6834124-ロボット制御装置 図000033
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6834124
(24)【登録日】2021年2月8日
(45)【発行日】2021年2月24日
(54)【発明の名称】ロボット制御装置
(51)【国際特許分類】
   B25J 13/08 20060101AFI20210215BHJP
【FI】
   B25J13/08 Z
【請求項の数】11
【全頁数】26
(21)【出願番号】特願2015-228656(P2015-228656)
(22)【出願日】2015年11月24日
(65)【公開番号】特開2017-56543(P2017-56543A)
(43)【公開日】2017年3月23日
【審査請求日】2018年6月21日
(31)【優先権主張番号】特願2015-184026(P2015-184026)
(32)【優先日】2015年9月17日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】特許業務法人 サトー国際特許事務所
(72)【発明者】
【氏名】川瀬 大介
(72)【発明者】
【氏名】白取 寛章
【審査官】 稲垣 浩司
(56)【参考文献】
【文献】 特開平09−212203(JP,A)
【文献】 特開2017−056542(JP,A)
【文献】 特開2017−056544(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 − 21/02
(57)【特許請求の範囲】
【請求項1】
ベースと、前記ベースに取り付けられ、当該ベースに対して第1軸を中心として回転するファーストアームと、前記ファーストアームに取り付けられ、当該ファーストアームに対して第2軸を中心として回転するセカンドアームと、前記セカンドアームに取り付けられ、当該セカンドアームに対して上下移動および回転するシャフトと、を有する水平多関節型のロボットを制御するロボット制御装置であって、
前記ファーストアームおよび前記セカンドアームに設けられている複数のセンサの検出結果から各アームにおける慣性力および慣性トルクを求め、求めた慣性力および慣性トルクから前記シャフトを支持するシャフト支持部にかかるトルクを推定し、当該推定したトルクと前記シャフトの剛性とに基づいて、前記シャフトの先端部の振動に相関する前記シャフト支持部での捩れ角度を求める処理を行う制御部を備え
前記制御部は、前記シャフト側の重心位置を求め、求めた重心位置と前記シャフト支持部との間の距離に基づいて当該重心位置における慣性モーメントに対応する抑制周波数を求め、求めた抑制周波数に対してノッチフィルタ演算を行うことで、前記シャフト支持部の捩れ角度を生じさせる振動を抑制する振動抑制制御を行うロボット制御装置。
【請求項2】
前記センサは、前記セカンドアームの動作方向とは異なる非動作方向への振動を検出するものである請求項1記載のロボット制御装置。
【請求項3】
複数の前記センサは、慣性センサ、回転角度センサおよび前記シャフトの上下位置を検出する位置センサのうちいずれかの組み合わせで構成されていることを特徴とする請求項1または2記載のロボット制御装置。
【請求項4】
前記慣性センサは、角速度を検出する角速度センサ、または、加速度を検出する加速度センサであることを特徴とする請求項3記載のロボット制御装置。
【請求項5】
前記角速度センサは、複数方向への角速度を検出する角速度センサであることを特徴とする請求項4記載のロボット制御装置。
【請求項6】
前記加速度センサは、複数方向への加速度を検出する加速度センサであることを特徴とする請求項4または5記載のロボット制御装置。
【請求項7】
前記回転角度センサは、前記ファーストアームを前記ベースに対して回転駆動するモータに設けられているモータエンコーダであることを特徴とする請求項3から6のいずれか一項記載のロボット制御装置。
【請求項8】
前記回転角度センサは、前記セカンドアームを前記ファーストアームに対して回転駆動するモータに設けられているモータエンコーダであることを特徴とする請求項3から7のいずれか一項記載のロボット制御装置。
【請求項9】
前記回転角度センサは、前記シャフトを前記セカンドアームに対して回転駆動するモータに設けられているモータエンコーダであることを特徴とする請求項3から8のいずれか一項記載のロボット制御装置。
【請求項10】
前記位置センサは、前記シャフトを上下駆動するモータに設けられているモータエンコーダであることを特徴とする請求項3から9のいずれか一項記載のロボット制御装置。
【請求項11】
前記制御部は、前記ノッチフィルタ演算に用いるフィルタパラメータを、前記シャフト側の重心位置に応じて変化する反共振周波数の変化に追従させて可変とすることにより、前記シャフト支持部から前記シャフト側の重心位置までの距離に反比例する可変周波数に対して前記抑制周波数を求めることを特徴とする請求項1から10のいずれか一項記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットを制御するロボット制御装置に関する。
【背景技術】
【0002】
ロボット制御の分野では、モデル化したロボットの動作を予めシミュレーションし、所望のシミュレーション結果、例えば所望の振動抑制効果を得られた制御内容を実際のロボットに適用することが一般的に行われている。また、ロボットの振動を抑制する振動抑制制御についても様々な検討がなされており、例えば特許文献1、2では、振動を抑制しながらロボットを動作させることができる制御装置が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4038659号公報
【特許文献2】特許第5411687号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、シミュレーション上では所望の振動抑制効果が得られた制御内容を実際のロボットに適用した場合、シミュレーション通りの性能を発揮できないことがある。具体的には、シミュレーション上では発生していなかった振動が、実際のロボットにおいて発生していた。
本発明は上記事情に鑑みてなされたものであり、その目的は、シミュレーション上では現れなかった振動を抑制することができるロボット制御装置を提供することにある。
【課題を解決するための手段】
【0005】
ロボットの制御分野では、モータとアーム間の減速機に存在するバネ要素による振動モードを考慮したいわゆる2慣性系のシミュレーションが利用されている。この振動モードは、減速機等の動力が伝達していく動力伝達機構における動作方向の剛性に起因する振動である。また、2慣性系のシミュレーションは、広く利用されており、その有効性は認知されていると考えられる。
【0006】
このとき、アームの剛性等の機械的数値はシミュレーション条件に当然盛り込まれており、実際のロボットは、そのシミュレーション条件を満たすような機械的数値の範囲で設計されている。それにも関わらずロボットに振動が生じるということは、従来の2慣性系で考慮されていた振動モードとは異なる振動モードが存在していると考えられる。
【0007】
そして、発明者らは、振動を生じさせる原因の調査を重ねた結果、実際のロボットでは、2慣性系の振動モードにおける動力伝達機構の動作方向の剛性による振動(以下、便宜的に動作方向振動と称する)以外にも、動力伝達機構の動作方向とは異なる振動(上記した非動作方向振動)が存在していることを見いだした。換言すると、動作方向とは異なる向きの非動作方向振動がシミュレーションには現れなかった振動の原因であることが発明者らによって突き止められたとともに、その非動作方向振動によってロボットの可動部側が全体的に動作方向以外にも揺れ、その結果、シャフトの支持部に捩れ振動が発生し、その捩れ振動が手先の振動として現れていたことが明らかになった。
【0008】
さて、もしも非動作方向振動の存在が今まで認知されていたならば、非動作方向振動に対処するための制御方法が検討されているはずである。しかし、実際には、非動作方向振動の存在を示唆するような考察や非動作方向振動を抑制するための制御方法等は検討されていない。つまり、非動作方向振動は、今まで認知されていなかったと考えられる。そのため、発明者らは、なぜ今まで非動作方向振動が考慮されていなかったのかについて考察した。
【0009】
最初期の産業用のロボットは、近年のロボットと比べて、格段にアームやギアあるいは軸受け部材などが相対的に太く且つ頑丈であった反面、アームおよび可動部分の全体の重量が相対的に大きかった。2慣性系の場合、共振周波数は、慣性(つまり重量)の逆数の平方根に比例することから、動作方向振動の共振周波数は低くなる。その一方で、アームを構成する部材等は非常に高剛性に作られており、非動作方向共振が存在していたとしても、その共振周波数は高くなっていたと考えられる。
【0010】
一般的に、複数の共振が存在する場合、低い共振周波数を持つ共振による影響が支配的となる場合が多い。つまり、非動作方向共振は、共振周波数が相対的に高かったことから、アームの位置応答や速度応答へ与える影響は無視できるほど小さかったと考えられる。また、発明者らの研究の結果、非動作方向振動の発生原因には例えば遠心力のように非動作方向に加わる力の存在があることが判明したが、最初期のロボットは、近年のロボットに比べて動作速度が相対的に遅かったため、遠心力による影響は無視できるほど小さかったと考えられる。
【0011】
これに対して、近年のロボットでは、アームを太く頑丈にする方向から、細く軽量化する方向へとその設計が変化してきている。つまり、アームが軽量化されてきた反面、アームを構成する部材は、最初期のロボットに比べれば低剛性化している。なお、低剛性化しているとはいっても、柔軟アームと呼ばれるようなアーム自体が捻れてしまうような状態ではなく、例えばクロスローラなどの軸支持部で、その回転軸以外の方向に微少振動が発生しているということである。
【0012】
そのため、複数の共振が存在している状態において支配的な共振が最初期のロボットとは入れ替わってきた、あるいは、両者の共振が近い共振周波数となって互いに影響し合うような状態になってきたと考えられる。さらに、近年のロボットの場合、最初期のロボットと比べてその動作速度が格段に高速化されており、速度の2乗に比例する遠心力の影響がより顕著に現れてきたと考えられる。
【0013】
例えば4軸の水平多関節型ロボットの場合であれば、シャフトを上下方向(Z方向)へ直動する支持部が、例えばセカンドアームの動きに連動して振動してしまう現象が確認されている。この場合、軸間干渉による振動のようにシャフトの移動方向への振動(動作方向振動に含まれる)とは異なる振動、具体的には、セカンドアームの円周方向(セカンドアームの動作方向)やセカンドアームの直径方向(セカンドアームに加わる遠心力の方向)への振動が発生している。なお、6軸の垂直多関節型ロボット(PUMA(Programmable Universal Manipulation Arm)型ロボット)や、いわゆる7軸ロボット等の他の構成のロボットにおいても、これに類似する現象により、非動作方向振動が発生している。
【0014】
そして、産業用のロボットにおいては、複数のアームが連結してロボットを構成することが多いため、ある軸が振動した結果、別の軸が干渉して振動するといった現象が発生する。このため、振動特性自体が単純な2慣性系モデルのようにはっきりとしたものとはならならず、複数の共振振動が周波数特定に現れること、また、周波数特性に現れる共振周波数と実際の振動波形に現れる共振周波数とに僅かな相違があることがある。そのため、非動作方向振動が存在していたとしても、非動作方向振動が原因となっていることを突き止めることが困難であったと考えられる。
【0015】
さらに、動作方向振動と非動作方向振動とでは振動周波数が異なることが多いものの、減速機として例えば波動歯車装置を用いている場合には、その剛性が入力されるトルクに応じて変化することが知られている等、モデル化誤差の原因となる要素が様々であることから、誰も非動作方向振動に想到することがなく、単に誤差として扱われていたものと考えられる。
【0016】
このような事情によって、シミュレーション上で現れた振動のうち最も影響度の大きいものを動作方向振動として扱い、それ以外は他の軸からの干渉などの誤差として扱っていたことから、非動作方向振動についての検討がなされてこなかったものと考えられる。つまり、最初期のロボットでは非動作方向振動がそれほど顕著ではなく、また、近年のロボットでは非動作方向振動が誤差として扱われていたことが、非動作方向振動が認知されていなかった理由であると推測された。
【0017】
そして、このような非動作方向振動の存在は、従来のシミュレーションの前提条件であった2慣性系モデルや干渉を含めた2慣性系モデルを拡張した例えば特許文献1でいう4慣性モデル等の制御モデルでは実際のロボットの振動特性をそもそも表現しきれていなかったこと示しており、極めて重大な技術的意義をもっている。
【0018】
さて、非動作方向振動の存在が判明したのであれば、その非動作方向振動に起因して生じる振動を抑制するような制御を行えば、シミュレーションには現れなかった手先に現れる振動を抑制することができると考えられる。
例えば水平多関節型ロボットの場合、回転軸である1軸目および2軸目の動作に連動して、Z軸直動部(シャフト)の支持部(シャフト支持部)で捩れ振動が発生していた。そして、この捩れ振動は、1軸目および2軸目の回転軸とRz軸(後述する図1参照)の回転だけでなく、Rx軸方向およびRy軸方向にも発生する。そのため、その振動を検出すれば、手先に現れる振動を抑制できると考えられる。
【0019】
しかし、従来のロボットにおいてはRx軸方向およびRy軸方向の振動を検出するセンサが設けられておらず、Rx軸方向およびRy軸方向の振動を検出すること自体ができかった。そのため、振動の発生を検知してその振動を抑制する制御を行うこともできなかった。
つまり、従来のロボットは、非動作方向振動が考慮されていなかったため、回転方向以外の振動を検出する手段をそもそも備えておらず、また、非動作方向振動の検出自体ができていないことから、その非動作方向振動を収束させる制御行うこともできなかった。
【0020】
また、ロボットの手先にセンサを設けることは、一般に想像するよりも困難である。例えば有線式のセンサをロボットの手先に設ける場合には、各アームの回転やシャフトの回転および上下動からケーブルを保護するために、いわゆるケーブルリール等の保護部材が必要となって配線構造が複雑化する。かといって、無線式のセンサを手先に設けると、ロボットの動作中にセンサへ給電あるいは充電することが容易ではないことに加えて、ノイズによって無線通信が断続するおそれがある。
【0021】
そこで、請求項1に係る発明では、ロボット制御装置は、水平多関節型ロボットのファーストアームおよびセカンドアームに設けられている複数のセンサの検出結果から、シャフトを支持するシャフト支持部にかかるトルクを推定し、当該推定したトルクに基づいて、シャフトの先端部の振動に相関するシャフト支持部での捩れ角度を求めている。
【0022】
つまり、制御装置は、ロボットの手先(シャフトの先端部)ではなく、各アームに設けられているセンサの検出結果から、シャフトに生じる捩れ振動に相関しているとともに、ロボットの手先つまりはシャフトの先端部の振動にも相関しているシャフト支持部での捩れ角度を求めている。
【0023】
この場合、具体的な計算方法は、シャフト支持部にかかるトルクをN3、シャフト支持部での捩れ角度をφ3、シャフト支持部の剛性をK3、複数センサの検出値をS1〜SNとすると、次のように数式で記載することができる。
φ3=φ3est(N3)
N3=N3est(S1〜SN)
ただし、φ3estはシャフト支持部にかかるトルクからシャフト支持部での捩れ角度を求める関数であり、N3estは複数センサの検出値からシャフト支持部にかかるトルクを求める関数である。以下でも同様に、末尾にestが付帯された関数は、センサ検出値あるいは別の推定値から、目的とする値を推定する関数である。
【0024】
この場合、ファーストアームに関しては、ファーストアームに設けられているセンサの検出結果から、ファーストアーム支持部にかかるトルクを求めることができる。また、ロボットでは各アームがリンクしていることから、セカンドアームに関しては、ファーストアームに設けられているセンサの検出結果とセカンドアームに設けられているセンサの検出結果とから、セカンドアームのみでみた場合の値を求めることができ、求めた値からセカンドアーム支持部にかかるトルクを求めることができる。同様に、シャフトに関しても、それぞれのセンサの検出結果から、シャフト支持部にかかるトルクを求めることができる。
【0025】
そして、シャフト支持部にかかるトルクが求まれば、シャフトの剛性に基づいてシャフトの捩れ角度を求めることができる。
この場合、具体的な計算方法は、シャフト支持部の剛性をK3とすると、次のように数式で記載することができる。
φ3=φ3est(N3)=N3÷K3
このように、各アームに設けられているセンサからの複数の検出結果を利用することにより、ロボットの手先にセンサを設けなくても、ロボットの手先の振動の要因となるシャフト支持部での捩れ振動を求めることができる。
また、センサは、各アームに設けられているため、手先に設ける場合と比べて、その配線構造を簡略化することができる。
【0026】
より詳細には、ロボット制御装置は、各アームに設けられているセンサの検出結果から各アームにおける慣性力および慣性トルクを求め、求めた慣性力および慣性トルクからシャフト支持部にかかるトルクを推定し、推定したトルクに基づいてシャフト支持部での捩れ角度を求める。
この場合、具体的な計算方法は、ファーストアームの慣性力をFG1、ファーストアームの慣性トルクをNG1、セカンドアームの慣性力をFG2、セカンドアームの慣性トルクをNG2とすると、次のように数式で記載することができる。
【0027】
FG1=FG1est(S1〜SN)
FG2=FG2est(S1〜SN)
NG1=NG1est(S1〜SN)
NG2=NG2est(S1〜SN)
N3=N3est(FG1,FG2,NG1,NG2)
このような手順および数式により、シャフト支持部にかかるトルクを推定することができる。
【0028】
各アームに設けられているセンサは、具体的には、請求項3に係る発明のように、慣性センサ、回転角度センサおよびシャフトの上下位置を検出する位置センサのうちいずれかの組み合わせで構成されている。例えば、速度と加速度は、いずれか一方を検出すれば演算により他方を求めることができる。ただし、その場合には、演算時間を要することになるが、換言すれば、演算が不要であればその分だけ処理速度を向上させることができる。そして、慣性センサであれば、直接的に慣性力を検出でき、回転角度センサであれば、回転角度を直接的に検出でき、位置センサであればシャフトの上下位置を直接的に検出できる。
このように、シャフト支持部にかかるトルクを推定するために必要となる各種の物理量を直接的に検出できるセンサを用いることにより、処理速度の向上を図ることができる。
【0029】
さらに詳細には、請求項4に係る発明のように、慣性センサとして角速度を検出する角速度センサ、あるいは加速度を検出する加速度センサを用いることで、各アーム支持部でのトルクを求める際の演算を省略あるいは簡略化することができる。
角速度センサは、請求項5に係る発明のように、複数方向への角速度を検出する角速度センサを用いることができる。
加速度センサは、請求項6に係る発明のように、複数方向への加速度を検出する加速度センサを用いることができる。
【0030】
回転角度センサは、請求項7に係る発明のように、ファーストアームをベースに対して回転駆動するモータに設けられているモータエンコーダを用いることができる。
また、回転角度センサは、請求項8に係る発明のように、セカンドアームをファーストアームに対して回転駆動するモータに設けられているモータエンコーダを用いることができる。
また、回転角度センサは、請求項9に係る発明のように、シャフトをセカンドアームに対して回転駆動するモータに設けられているモータエンコーダを用いることができる。
また、位置センサは、請求項10に係る発明のように、シャフトを上下駆動するモータに設けられているモータエンコーダを用いることができる。
このようにアームやシャフトを駆動するモータに一般的に設けられているモータエンコーダを用いることで、追加部材を必要とすること無く、回転角度やシャフトの上下位置を取得することができる。
【0031】
また、上記した請求項1に係る発明では、シャフト側の重心位置を求め、求めた重心位置とシャフト支持部との距離に基づいて当該重心位置における慣性モーメントに対応する抑制周波数を求め、求めた抑制周波数に対してノッチフィルタ演算を行うことで、シャフト支持部の捩れ角度を生じさせる振動を抑制する振動抑制制御を行う。ここで、シャフト側の重心位置とは、シャフトにツールが取り付けられている場合にはシャフトとツールの重量を含んだ状態における重心位置を意味し、そのツールがワークを把持している場合には、シャフト、ツールおよびワークの重量を含んだ状態における重心位置を意味する。
【0032】
シャフトの上下位置が変化すると、それに応じてシャフト側の重心位置が変化する。このとき、重心位置が変化すると、重心位置における慣性モーメントも変化する。つまり、シャフト支持部の捩れ角度を生じさせる要因となる慣性モーメントは、重心位置の変化に応じて変化する。このため、シャフト支持部の捩れ角度を生じさせる要因となる振動を抑制するためには、従来のように2次元空間を対象とするだけでは不十分であり、3次元空間を対象とする必要がある。
【0033】
そこで、重心位置における慣性モーメントに対応する抑制周波数を求めることにより、3次元空間を対象とした場合における抑制すべき周波数である抑制周波数を求めることができる。そして、抑制周波数が求まれば、その抑制周波数を抑制するような演算、つまりは、重心位置の慣性モーメントに応じたノッチフィルタ演算を行うことにより、シャフト側の重心位置が変化した場合であっても、その変化に追従させてノッチフィルタ演算を行うことができる。つまり、シャフト支持部の捩れ角度を生じさせる振動を抑制することができる。
また、シャフトの重心位置に応じて慣性モーメントが変化するという従来技術では考慮されていなかった事象を考慮した上で振動抑制制御を行うことから、従来技術では考慮すらされていなかったために抑制することができなかった動作方向とは異なる向きに生じる非動作方向振動を、抑制することができる。
【0034】
より具体的には、請求項11に係る発明のように、ノッチフィルタ演算に用いるフィルタパラメータを、シャフト側の重心位置に応じて変化する反共振周波数の変化に追従させて可変とすることにより、シャフト支持部からシャフト側の重心位置までの距離に反比例する可変周波数に対して抑制周波数を求めることができる。
【図面の簡単な説明】
【0035】
図1】第1実施形態によるロボットおよびロボット制御装置の構成を模式的に示す図
図2】ファーストアームに生じるRy回転を模式的に示す図
図3】センサ位置を模式的に示す図
図4第2実施形態におけるセンサ位置を模式的に示す図
図5】第3実施形態における重心位置を模式的に示す図
図6】重心位置における捩れを模式的に示す図
図7】抑制周波数可変ノッチフィルタ処理の流れを示す図
【発明を実施するための形態】
【0036】
以下、本発明の複数の実施形態について、図面を参照しながら説明する。なお、各実施形態において実質的に共通する部位には同一の符号を付し、その詳細な説明は省略する。
(第1実施形態)
本発明の第1実施形態について図1から図3を参照しながら説明する。
【0037】
図1に示すように、ロボットシステム1は、ロボット2と、ロボット2を制御する制御装置3(ロボット制御装置に相当する)とを備えている。制御装置3は、制御部3aを備えており、ロボット2を制御する。この制御部3aは、詳細は後述するが、センサ8、9、10(図参照)の検出結果にもとづいてシャフト7を支持するシャフト支持部6a(図3参照)にかかるトルクを推定し、推定したトルクに基づいて当該シャフト支持部6aでの捩れ角度を求めることを含む実施形態で説明する種々の処理を実行する。このシャフト支持部6aでの捩れ角度は、捩れ振動に相関しているとともに、ロボット2の手先つまりはシャフト7の先端部7aの振動にも相関している。
【0038】
本実施形態のロボット2は、ベース4と、ベース4に取り付けられ(ベース4に支持され)、当該ベース4に対して第1軸(J1)を中心として回転するファーストアーム5と、ファーストアーム5に取り付けられ(ファーストアーム5に支持され)、当該ファーストアーム5に対して第2軸(J2)を中心として回転するセカンドアーム6と、セカンドアーム6に取り付けられ(セカンドアーム6に支持され)、当該セカンドアーム6に対して上下移動および回転するシャフト7と、を有する水平多関節型ロボットを想定している。
【0039】
シャフト7は、本実施形態では、ボールねじスプラインを想定している。この場合、ロボット2の手先とは、シャフト7の下端側、つまり、セカンドアーム6に対して上下方向に相対的に移動するとともに、セカンドアーム6に対して相対的に回転する部分に相当する。なお、シャフト7は、非常に剛性が高く設計されており、シャフト7そのものが撓んだり変形したりすることは考えにくい。ただし、シャフト7の剛性が低く、シャフト7そのものが撓んだり変形したりしている場合であっても、その撓みや変形がシャフト支持部6aで起きているものとして等価変換することにより、同様の効果を得ることが出来る。
【0040】
以下、図1に示すように、シャフト支持部6aを原点とし、シャフト7と同軸となる天地方向をZ軸(Z方向)、Z軸に直交し、セカンドアーム6に沿った方向をX軸(X方向)、これらZ軸およびX軸に直交する方向をY軸(Y方向)として説明する。また、図1に示すZ軸回りの回転をRz回転と称し、X軸回りの回転をRx回転と称し、Y軸回りの回転をRy回転と称する。
【0041】
この場合、Rx回転とは、図1に示す状態においてシャフト支持部6aを中心としてセカンドアーム6がX軸回りに回転する状態、より平易に言えば、セカンドアーム6が捩れた状態に相当する。また、Ry回転とは、セカンドアーム6を例にすると、図1に示す状態においてシャフト支持部6aを中心としてセカンドアーム6がY軸回りに回転する状態、より平易に言えば、セカンドアーム6の先端側がZ方向に揺れる状態に相当する。
【0042】
このロボット2は、図3に示すように、複数のセンサ8、9、10を備えている。このうち、センサ8、9は、ファーストアーム5およびセカンドアーム6に設けられ、各アームの慣性を検出する慣性センサであり、センサ10は、セカンドアーム6に設けられ、シャフト7の上下位置を検出する位置センサである。各センサ8、9の配置は、基本的には任意に設定することができる。
【0043】
より具体的には、本実施形態では、センサ8は、ファーストアーム5に設けられており、ファーストアーム5が動作した際のRx回転の角速度およびRy回転の角速度を検出する2軸角速度センサで構成されており、図2に示すファーストアーム5における動作方向とは異なる向き(非動作方向)に生じる角速度を検出する。また、センサ9は、セカンドアーム6に設けられ、当該セカンドアーム6が動作した際のRx回転の角速度およびRy回転の角速度を検出する2軸角速度センサで構成されており、セカンドアーム6における動作方向とは異なる向き(非動作方向)に生じる角速度を検出する。
【0044】
また、センサ10は、セカンドアーム6内のシャフト支持部6aに設けられており、シャフト7を上下駆動するモータの回転角度を検出するモータエンコーダである。なお、図示は省略するが、これら各センサ8、9、10は、ケーブルにて接続されている有線式のものを使用している。なお、図示は省略するが、ファーストアーム5を駆動するモータおよびセカンドアーム6を回転駆動するモータにも、モータエンコーダが設けられている。
【0045】
次に、上記した構成の作用について説明する。
問題となっているシャフト支持部6aでの捩れ振動の振動周波数は、減速機構での回転方向の共振振動の振動周波数よりも十分に低い場合が多い。一例としては、例えばシャフト7直動部の支持部での捩れ振動の振動周波数が10Hz程度以下であるのに対し、減速機構での回転方向の共振振動の振動周波数は、50Hz程度である。なお、シャフト7がボールねじスプラインの場合などでは、その共振振動周波数は100Hzを超えることもある。
【0046】
このように振動周波数の差が大きい場合には、モータエンコーダの値をアームのRz軸回転角度あるいはZ軸位置(シャフト位置)として問題ない。なお、回転方向の共振振動が問題になる場合には、減速機の出力側にエンコーダ(シャフト7の場合にはリニアエンコーダ等)を設けたり、角速度センサや加速度センサを追加したり、状態オブザーバにより共振振動を推定したりすることで、共振振動の影響を除外することができる。
【0047】
そこで、まず、各アームにおける各種のパラメータや変数を、以下のように定義する。なお、以下では、各種のパラメータや変数を総称してパラメータとしている。また、使用可能文字の関係上、明細書中では、例えばファーストアーム支持部捩れ角度などについては、「φ」と示すものとする。
<<アームに関するパラメータ>>
【0048】
【数1】
【0049】
<<アームに関するパラメータ>>
【0050】
【数2】
【0051】
<<シャフト7に関するパラメータ>>
【0052】
【数3】
【0053】
これらのパラメータのうち、以下のパラメータは、各センサ8〜10によって検出された値、あるいは、検出された値を演算することにより求めることができる。
【0054】
【数4】
【0055】
なお、ファーストアーム5およびセカンドアーム6の重心位置での角速度は、ファーストアーム5およびセカンドアーム6内のどの点の角速度を測定しても、重心位置での角速度と同じ値が検出される。
また、各パラメータは、以下の関係を持っている。
【0056】
【数5】
【0057】
さて、トルクの推定手法について述べる前に、後述する演算の簡略化について説明する。
回転振動について、その回転軸を単位ベクトルv、その回転量をφとする。ただし、単位ベクトルvは、以下の(3)式である。このとき、回転行列Rは、ロドリゲスの回転公(Rodrigues' Rotation Formula)を用いると、以下の(4)式で表される。この、回転行列R中の行列Vは、単位ベクトルvにより、以下の(5)式のように定義される。そして、単位ベクトルvおよび回転量φは、以下の(6)式および(7)式のように求まる。
【0058】
【数6】
【0059】
ここで、例えばファーストアーム5とセカンドアーム6のアーム長の合計が1000mmであったとし、手先に現れる振動がおよそ1mm程度であったとすると、回転量φは0.001(rad)となる。このとき、φ<<1であることから、sinφ=φ、cosφ=1と近似すると、回転行列Rは、以下の(8)式のように表すことができる。
【0060】
【数7】
【0061】
ここで、vが単位ベクトルであることから、回転行列Rの非対角成分の絶対値は、φ以下となることが分かる。このことは、ある軸の値に対して、別の軸の値が最大でφだけ誤差として重畳してしまうことを示している。
さて、計測対象の軸に対して直交する別の軸からの影響度を一般的に他軸感度と呼ぶが、上記のように近似した値を用いることで回転行列をRz回転に限定したことによる他軸感度への影響は、0.1%となる。
【0062】
これに対して、センサ8、9等の慣性センサ自体の他軸感度は、一般的に、数%程度(例えば4%程度)である。このため、回転行列をRz回転に限定することによる誤差は、慣性センサ自体の持つ他軸感度による誤差と比べて一桁以上小さくなっている。このため、Rz軸方向の回転のみを考慮し、捩れ角度の影響は無視しても、実用上つまりは実際にロボット2を制御する上では、大きな問題となることはない。そのため、本実施形態では、以下のように、シャフト支持部6aにかかるトルクを求める際には、回転行列についてはRz軸方向の回転のみを考慮し、捩れ角度の影響は無視することで、演算を簡略化することができるようになる。
さて、このように演算を簡略化した場合には、各回転行列は、以下の(9)式から(11)式のように表すことができる。
【0063】
【数8】
【0064】
勿論、簡略化せずに、それぞれの支持部における捩れ角度の影響を含めて、Rx回転およびRy回転を考慮した回転行列を用いる場合にも、以下の手法によりトルクを推定することは可能である。
さて、ファーストアーム5およびセカンドアーム6の重心位置の加速度、慣性力、慣性トルクは、以下の(12)式から(17)式のようになる。
【0065】
【数9】
【0066】
これらより、ファーストアーム支持部およびセカンドアーム支持部の力およびトルクは、以下の(18)式から(21)式のようになる。
【0067】
【数10】
【0068】
また、ファーストアーム支持部およびセカンドアーム支持部のトルクは、支持部の剛性を用いて、以下の(22)式および(23)式のように求まる。ただし、Rz軸方向のトルクについては、厳密に捩れ剛性を用いて求めなくても、モータトルクをギア比により各アーム支持部のRz軸方向のトルクに換算して用いても良い。
【0069】
【数11】
【0070】
そして、ファーストアーム支持部のトルクから、セカンドアーム支持部の力を求める。ただし、ここで求まるセカンドアーム支持部の力は、この時点では一意に求まることはなく、例えば(25)式のλL1や(26)式のλR2L1のように、ファーストアーム5のリンク長ベクトル方向に水平な未知の項を含んだ状態で求まる。そして、求めたセカンドアーム支持部の力より、シャフト支持部6aの力を以下の(27)式のように求める。なお、以下の式のNF21、F20は、式を置き換えるために定義したものである。
【0071】
【数12】
【0072】
続いて、セカンドアーム支持部のトルクから、以下の(28)式および(29)式のように、シャフト支持部6aの力を消去する。
【0073】
【数13】
【0074】
この(28)式から、未知項は、ファーストアームリンク長を、セカンドアーム回転角度だけRz回転させたベクトルとセカンドアーム6のリンク長の外積で表されることが明らかになった。これらリンク長ベクトルは、X軸方向にのみ大きな値であるものの、Y軸方向あるいはZ軸方向には小さい値となっている。
このため、セカンドアーム回転角度が0°の場合、未知項は、非常に小さな値となるため、無視しても問題ないレベルとなる。また、セカンドアーム回転角度が90°の場合、未知項は、ほぼRz軸方向のベクトルとなり、Rx軸方向あるいはRy軸方向については、その影響をほぼ無視しても問題ないレベルとなっている。
【0075】
すなわち、上記した式には未知項が含まれているものの、その影響は、Rz軸方向へは大きく作用する場合があるものの、Rx軸方向あるいはRy軸方向ではその影響を無視できる。これを式として表すならば、リンク長ベクトルがX軸成分のみに値を持つとすれば、未知項は、Rz軸方向へのみ影響を表すことから、次の(30)式から(32)式のように示すことができる。ただし、(32)式における「×」は、外積を示す。
【0076】
【数14】
【0077】
次に、セカンドアーム支持部のトルクからシャフト支持部6aのトルクを、以下の(33)式から(35)式のようにして求める。そして、このシャフト支持部6aのトルクと剛性とより、シャフト支持部捩れ角が、以下の(36)式のように求まる。ただし、シャフト支持部6aのトルクにも上記したRz軸方向へは未知項が影響しており、この未知項の影響により、シャフト支持部捩れ角は、Rx軸方向およびRy軸方向の捩れ角のみが有効なものとして導出されている。
【0078】
【数15】
【0079】
なお、シャフト支持部捩れ角は、ファーストアーム支持部あるいはセカンドアーム支持部の場合と同様に、4軸目モータトルクをギア比により変換することでRz軸方向トルクを求め、そのRz軸方向トルクからシャフト支持部捩れ角を求めてもよい。
このように、本実施形態の制御装置3は、手先では無く、各アームに設けた複数のセンサの検出結果に基づいてシャフト支持部6aのトルクを推定し、推定したシャフト支持部6aのトルクに基づいて、シャフト支持部捩れ角、つまりは、手先の振動の要因となるシャフト支持部6aでの捩れ振動を求めている。
【0080】
以上説明した実施形態によれば、次のような効果を得ることができる。
ロボット制御装置(制御装置3)は、水平多関節型のロボット2のファーストアーム5およびセカンドアーム6に設けられている複数のセンサ8、9、10の検出結果から、シャフト7を支持するシャフト支持部6aにかかるトルク(N3)を推定し、当該推定したトルク(N3)とシャフト7の剛性とに基づいて、シャフト7の先端部7aの振動に相関するシャフト支持部6aでの捩れ角度を求めている。
【0081】
つまり、制御装置3は、ロボット2の手先(シャフト7の先端部7a)ではなく、各アームに設けられているセンサ8、9、10の検出結果から、シャフト7に生じる捩れ振動に相関しているとともに、ロボット2の手先つまりはシャフト7の先端部7aの振動にも相関しているシャフト支持部6aでの捩れ角度を求めている。
【0082】
ファーストアーム5に設けられているセンサ8の検出結果から、ファーストアーム支持部にかかるトルクを求めることができる。また、ロボット2は各アームがリンクしていることから、ファーストアーム5に設けられているセンサ8の検出結果と、そのファーストアーム5に対して相対的に動作可能なセカンドアーム6に設けられているセンサ9の検出結果とから、セカンドアーム6のみでみた場合の値を求めることができ、求めた値からセカンドアーム支持部にかかるトルクを求めることができる。同様に、センサ8〜10の検出結果から、シャフト支持部6aにかかるトルクを求めることができる。
そして、シャフト支持部6aにかかるトルクが求まれば、シャフト7の剛性に基づいて、シャフト7の捩れ角度を求めることができる。
これにより、ロボット2の手先にセンサを設けなくても、ロボット2の手先の振動の要因となるシャフト支持部6aでの捩れ振動を求めることができる。
【0083】
このとき、センサ8、9、10は、各アームに設けられているため、手先に設ける場合と比べて、その配線構造を簡略化することができる。また、有線式であることから、電源供給等の問題が生じず、また、無線式のようにノイズにより通信が途切れることもないため、信頼性を向上させることができる。
【0084】
より詳細には、制御装置3は、各アームに設けられているセンサ8、9、10の検出結果から各アームにおける慣性力を求め、求めた慣性力から各アームを支持するそれぞれのアーム支持部でのトルクを求める。そして、制御装置3は、求めた各アーム支持部でのトルクからシャフト支持部6aにかかるトルクを推定し、推定したトルクに基づいてシャフト支持部6aでの捩れ角度を求めている。
複数のセンサ8、9、10は、慣性センサ、回転角度センサおよびシャフト7の上下位置を検出する位置センサのうちいずれかの組み合わせで構成されている。
【0085】
例えば、速度と加速度は、いずれか一方を検出すれば演算により他方を求めることができる。ただし、その場合には、演算時間を要することになるが、換言すれば、演算が不要であればその分だけ処理速度を向上させることができる。そして、慣性センサであれば、直接的に慣性力を検出でき、回転角度センサであれば、回転角度を直接的に検出でき、位置センサであればシャフト7の上下位置を直接的に検出できる。
【0086】
このように、シャフト支持部6aにかかるトルクを推定するために必要となる各種の物理量を直接的に検出できるセンサを用いることにより、処理速度の向上を図ることができる。
より詳細には、慣性センサとして角速度を検出する角速度センサを用いることで、各アーム支持部でのトルクを求める際の演算を省略あるいは簡略化することができる。また、位置センサとしてシャフト7を駆動するモータに一般的に設けられているモータエンコーダを用いることで、追加部材を必要とすること無く、シャフト7の上下位置を取得することができる。
また、各センサ8、9の配置は基本的には任意に設定することができるため、配線が過度に複雑化することを抑制できる。
【0087】
また、本実施形態の場合、常に振動を検出することが可能となるので、振動特性が外気温度(昼夜や季節による温度変動)や経年劣化あるいは暖機運転の状態(平常時と長期連休直後の相違)などにより変動することを考慮すると、例えば試験運転時にのみセンサを利用し、実稼働時にはセンサを利用しないような構成とは異なり、期待通りの振動抑制効果を発揮することができる。
また、ファーストアーム5およびセカンドアーム6に設けられている複数のセンサの検出結果からシャフト7を支持するシャフト支持部6aにかかるトルクを推定し、当該推定したトルクに基づいて、シャフト7の先端部7aの振動に相関するシャフト支持部6aでの捩れ角度を求める制御方法によっても、同様の効果を得ることができる。
【0088】
(第2実施形態)
以下、第2実施形態について説明する。第2実施形態の場合、センサの設置態様が第1実施形態と異なっている。
図4に示すように、本実施形態の場合、ファーストアーム5には、第1実施形態のセンサ8(角速度センサ)の代わりに、2軸の加速度センサであるセンサ11、12を設けている。なお、図示は省略するが、セカンドアーム6にも2軸の加速度センサが2つ設けられている。また、センサ11、12も含めて、各センサの配置は基本的には任意に設定することができる。
【0089】
まずファーストアーム5について説明する。1軸回転中心(J1軸上の点C1)と2軸回転中心(J2軸上の点)とを通る仮想的な直線をCL1とし、CL1に沿った1軸回転中心(J1軸上の点C1)と2つのセンサ11、12のそれぞれの測定位置との間の距離をそれぞれLS11X、LS12Xとする。また、CL1からY方向への距離をそれぞれLS11Y、LS12Yとし、CL1からZ軸方向への距離をそれぞれLS11Z、LS12Zとする。また、各センサ11、12の測定軸は、Y軸とZ軸であるものとする。
このとき、各センサ11、12によって検出される加速度は、センサの数をnとすると、以下の(37)式のように表される。
【0090】
【数16】
【0091】
そして、Y軸加速度から、Rx軸角加速度とRz軸角加速度は、以下の(38)式から(41)式のように導出される。
【0092】
【数17】
【0093】
同様に、Z軸加速度から、Rx軸角加速度とRy軸角加速度が、以下の(42)式から(45)式のように導出される。
【0094】
【数18】
【0095】
そして、求めたそれぞれの角加速度を積分することにより、角速度をそれぞれ求めることができる。なお、Rx軸角加速度はいずれの加速度からも求めることができるが、例えば平均値を利用したり、角速度および角加速度の誤差が小さくなるように補正したり、分母が大きい方の値を利用するなどにより、精度を向上させることができる。
【0096】
次に、セカンドアーム6の場合を考える。セカンドアーム6の場合、2軸回転中心(J2軸上の点)の加速度をセンサの検出結果から差し引くことで、上記したファーストアーム5の場合と同様の演算にてX軸、Y軸、Z軸の角速度をそれぞれ求めることができる。この場合、2軸回転中心の加速度は、ファーストアーム5の角速度あるは角加速度から求めることができる。
そして、各アームにおける角速度が求まれば、(1)式に代入し、第1実施形態と同様に演算することで、シャフト支持部捩れ角、つまりは、手先が振動した場合の手先位置を取得することができる等、第1実施形態と同様の効果を得ることができる。
【0097】
このとき、センサ位置は基本的には任意であるが、センサ位置を工夫することにより、効率的に演算を行うことができる。例えば、ファーストアーム5であれば、LS11X=LS12X、LS11Y=LS12Y、LS11Z=LS12Zのように配置するとよい。また、LS11Z=LS12Z=0とするとなおよい。セカンドアーム6も考慮すると、これらの関係は、以下の(46)式から(48)式のように表すことができる。
【0098】
LSmX=LSmnX ・・・(46)
LSm=LSmnY ・・・(47)
LSmZ=LSmnZ(=0) ・・・(48)
なお、nはセンサの数であり、m=1の場合がファーストアーム5、m=2の場合がセカンドアーム6になる。つまり、n=1、m=1であれば、例えばLS11Xがセンサ11の配置(第1軸(J1)からの距離)を表し、n=2、m=1であれば、例えばLS12Yがセンサ12の配置(直線(CL1)からの距離)を表している。
【0099】
(第3実施形態)
以下、第3実施形態について説明する。第3実施形態では、上記した第1実施形態および第2実施形態で示したロボット制御装置において、手先に現れる振動を抑制するための手法について説明する。なお、構成については第1実施形態と共通する。また、図1から図4も参照しながら説明する。
【0100】
まず、上記した第1実施形態で説明した通り、水平多関節ロボットであるロボット2では、回転軸である1軸(J1)目および2軸(J2)目の動作に連動して、シャフト7を支持するシャフト支持部6aにおいて捩れ振動が発生している。そして、この捩れ振動は、1軸目および2軸目の回転軸とRz軸の回転だけでなく、Rx軸方向およびRy軸方向にも発生している。
【0101】
しかし、従来の一般的なロボットの場合には、Rz軸方向に関してはシャフト7の回転軸となる4軸目に角度センサとしてモータエンコーダが取り付けられているものの、Rx軸方向およびRy軸方向にはその動作を検出できるセンサが設けられていなかった。そのため、Rx軸方向およびRy軸方向の振動に関しては、捩れ振動そのもののを観測できないため、捩れ振動の発生を検知してその捩れ振動を抑制することが困難であった。
【0102】
そして、ある回転軸で動作方向に受ける他の軸からの干渉力による捩れをその軸のモータ制御位置指令値の補正で抑制する手法等も提案されているが、上記したように、一般的な考え方では各軸において回転可能なのはRz軸方向のみであり、Rx軸方向あるいはRy軸方向には回転できないため、Rx軸方向およびRy軸方向の捻れを補償することはできなかった。また、それ以外にも他の軸からの影響を補正する様々な方法が提案されているが、動作方向ではない非動作方向について検討されているものはなかった。
【0103】
また、非動作方向も含めた各関節部の弾性を考慮して制御位置指令値を修正する方法も提案されていたものの、共振特性については何ら考慮されておらず、共振振動(非動作方向共振)の抑制には効果がなかった。また、手先先端の位置に関してはそのような方法で精度が向上すること自体は見込めるものの、Rx軸方向あるいはRy軸方向の慣性、弾性および剛性(バネ定数)から成る共振特性によって共振振動を励起してしまい、手先先端の姿勢、特にRx軸方向あるいはRy軸方向に対する姿勢が振動的になってしまうおそれがあった。この場合、一見すれば逆相に動かすことで振動抑制に効果が見込めそうに思われたものの、動作中には手先加速度による慣性力が非動作方向に直接作用し、動作終了後には手先加速度がゼロとなり慣性力を発生させなくなることから、共振振動の発生を抑制する効果も共振振動を減衰させる効果も得ることはできなかった。
【0104】
さて、一般的なフィードバック制御においては、共振周波数付近ではフィードバック制御系の位相が進み、且つかつそのゲインも高いことから、十分に振動を抑制することができると見込まれる。しかし、反共振周波数付近は振動が検出できないため、フィードバック制御による振動の抑制が困難となっている。そのため、反共振周波数の付近、具体的には一般的に効果的であることが多いと考えられる反共振周波数よりも1〜2割程度低い周波数を振動抑制周波数として、ノッチフィルタなどの振動抑制フィルタを用いて振動の発生自体を抑制する制御が行われていた。
【0105】
しかし、水平多関節ロボットにおいて、そのようなノッチフィルタを用いて振動抑制制御を行うと、動作条件によって振動抑制効果が異なるということが判明した。そこで、アームの回転方向の慣性モーメントの変化をパラメータとして振動抑制周波数を変動させたところ、振動抑制効果はあまり向上しなかった。
そのため、さらに発明者らが詳細に調査したところ、シャフト支持部6aに起因する共振振動は、アームの回転方向に直交する方向の慣性モーメントに依存していること、つまりは、シャフト7のZ軸方向における位置(以下、Z軸高さとも称する)によってその共振周波数および反共振周波数が変動することが明らかになった。そして、このことは、従来のように2次元平面上で動くシステムだけを考慮するのでは不十分であり、3次元空間上で動くシステムとして考えなければ、効果的な振動抑制効果を得るためには不十分であるということを示している。
【0106】
そこで、本実施形態では、以下に説明するようなノッチフィルタを用いることで、非動作方向振動の抑制を実現している。なお、このノッチフィルタは、制御部3aによって実行される。
まず、慣性モーメントをJとし、剛性をKとし、共振周波数をωとすると、周知のように、以下の(49)式の関係が成立する。
【0107】
【数19】
【0108】
ここで、慣性モーメントがシャフト支持部6aからみたシャフト7側の慣性モーメントであるとして、図5に示すように、シャフト7側の重心位置(Pg)における慣性モーメントをJc、シャフト7側の重量をM、シャフト支持部6a(Ps)から重心位置までの距離をLとすると、慣性モーメントは、以下の(50)式のように表すことができる。ここで、シャフト7側の重心位置とは、シャフト7と負荷との重心位置、具体的には、ツールが取り付けられている場合にはシャフト7とツールの重量を含んだ状態における重心位置を意味し、そのツールがワークを把持している場合にはシャフト7、ツールおよびワークの重量を含んだ状態における重心位置を意味する。
J=Jc+ML ・・・(50)
【0109】
このとき、剛性はシャフト支持部6aの剛性であるものの、捩れ量が比較的小さいとすれば、sin(θ)=θ、cos(θ)=1と近似することができるため、シャフト7自体の剛性を等価的にシャフト支持部6aの剛性と考えることができる。そのため、剛性には、シャフト7自体の剛性を含めてもよい。具体的には、図6に示すように、シャフト支持部6aの剛性をK、シャフト7自体の剛性をK、重心位置に加わる力をfとし、その際の捩れ量をdとすると、捩れ量は、以下の(51)式のように求めることができる。
【0110】
【数20】
【0111】
なお、捩れ量は、第1実施形態で説明した捩れ角度に基づいて求めることができる。
この(51)式から、シャフト支持部6aの剛性として、シャフト7自体の剛性を含めた全剛性を用いても、等価的に扱えることが数式の上からも明らかとなった。また、捩れ角度に相関する捩れ量が、シャフト7側の重心位置によって変化することも示された。なお、全剛性は、以下の(52)式である。
【0112】
【数21】
【0113】
また、捩れ量が小さいという条件より、シャフト支持部6aから重心位置までの距離との間には、d<<Lの関係が成立するものとして近似している。一般的な金属材料であればヤング率に対して引っ張り強度が1%以下であることから、換言すると、シャフト7自体に1%を超えるような捩れが発生した場合にはシャフト7が破断することから、上記したd<<Lの関係になるという条件は、常に成立する。
これらの式から、反共振周波数が以下の(53)式のように表されること、すなわち、Z軸高さによって反共振周波数が変化することが明らかになった。
【0114】
【数22】
【0115】
そして、Z軸高さによって反共振周波数が変化することが明らかになったことから、その変化に対応した可変周波数の振動抑制制御を行えばよいことが分かる。この場合、振動は、特に反共振周波数ωが低い領域で問題となることから、Jc<<MLとして、以下の(54)式のように近似して、シャフト支持部6aから重心位置までの距離Lに反比例する可変周波数に対して振動抑制制御を行ってもよい。
【0116】
【数23】
【0117】
なお、従来ではアームの姿勢変化により共振周波数が変化することは考慮されているものの、動作方向に対応する慣性モーメントの変化のみが考慮されており、非動作方向の慣性モーメントが変化することや、それにより共振周波数が変化することについては何ら考慮されていなかった。
また、慣性モーメントを推定してサーボゲインを自動調整する手法も提案されていたが、これは回転方向の慣性モーメントと回転運動の角加速度の関係を利用するという動作方向に対応する慣性モーメントの変化のみを考慮したものであり、非動作方向の慣性モーメントが変化することに対しては、何ら考慮されていなかった。また、Z軸高さと負荷の重量に依存して許容曲げモーメントを超えないように加速度を調整する手法も存在しているが、Z軸高さによって慣性モーメント及び共振周波数が変化することについては、何ら検討されていなかった。
【0118】
このように、上記した(53)式にて示すZ軸高さによって反共振周波数が変化することは、本願の発明者らによって新規に明らかになったものである。
そして、本実施形態では、図7に示す抑制周波数可変ノッチフィルタ処理により、非動作方向の振動を抑制している。なお、この抑制周波数可変ノッチフィルタ処理は、制御部3aによって実行されており、非動作方向の振動を抑制する制御方法の流れを示すものでもある。つまり、制御部3aは、以下に説明するように、Z軸高さを取得する処理を行うZ軸高さ取得部、重心位置までの距離を取得する処理を行う距離取得部、抑制周波数を求める処理を行う抑制周波数取得部、フィルタパラメータを更新する処理を行う更新部、およびノッチフィルタ演算を行う演算部として機能する。
【0119】
この抑制周波数可変ノッチフィルタ処理では、まず、モータエンコーダなどからZ軸高さを取得する(S1)。この場合、Z軸高さの誤差が大きく影響することはないため、モータエンコーダからの実測値ではなく、指令値を用いてもよい。
続いて、シャフト支持部6aから重心位置までの距離を取得する(S2)。このとき、Z軸高さがp=0でのシャフト支持部6aから重心位置までの距離をLとすると、Z軸の正方向を上昇方向とした場合、シャフト支持部6aから重心位置までの距離は、以下の(55)式となる。
L=L−p ・・・(55)
【0120】
続いて、抑制周波数を取得する(S3)。この場合、抑制周波数は、上記した(53)式または(54)式のように求めればよい。
さて、ノッチフィルタFN(s)は、以下の(56)式のように定義される。
【0121】
【数24】
【0122】
ただし、(56)式は連続時間系での伝達関数であり、そのままでは制御演算ができない。そのため、(56)式を離散時間系に変換する。この場合、制御周期をTsとすると、離散時間系でのノッチフィルタFN(z−1)は、以下の(57)式のようになる。
【0123】
【数25】
【0124】
この(57)式に従ってフィルタパラメータを更新し(S4)、ノッチフィルタ演算を行うことで(S5)、抑制周波数可変ノッチフィルタ処理が実現される。
このように、重心位置の慣性モーメントを考慮してノッチフィルタを設計することにより、Z軸高さが変わった場合であっても、それに応じてノッチフィルタの抑制周波数が変化することから、捩れ量つまりは捩れ角度を生じさせる非動作方向への振動に対応することができ、適切にシャフト支持部6aの振動を抑制することができる。つまり、振動なくロボットを動かすことができる。
【0125】
以上説明したように、本実施形態によれば、次のような効果を得ることができる。
本実施形態では、シャフト7側の重心位置を求め、求めた重心位置とシャフト支持部6aとの距離に基づいて当該重心位置における慣性モーメントに対応する抑制周波数を求め、求めた抑制周波数に対してノッチフィルタ演算を行うことで、シャフト支持部6aの捩れ角度を生じさせる振動を抑制する振動抑制制御を行っている。つまり、シャフト支持部6aの捩れ角度を生じさせる要因となる振動を抑制するために、従来のように2次元空間を対象とするだけでなく、3次元空間を対象として振動抑制制御を行っている。
【0126】
そして、重心位置における慣性モーメントに対応する抑制周波数を求めることにより、3次元空間を対象とした場合における抑制すべき周波数である抑制周波数を求めることができ、抑制周波数が求まったことにより、その抑制周波数を抑制するような演算つまりは重心位置の慣性モーメントに応じたノッチフィルタ演算を行うことで、シャフト7側の重心位置が変化した場合であっても、その変化に追従させてノッチフィルタ演算を行うことができる。
【0127】
このように、例えばアームの姿勢変化により共振周波数が変化する場合において動作方向に対応する慣性モーメントの変化のみが考慮されており、非動作方向の慣性モーメントが変化することについては何ら考慮されていなかった従来技術とは異なり、本実施形態の振動抑制方法であれば、非動作方向の慣性モーメントが変化することに対応した振動抑制制御を行うことができる。すなわち、シャフト支持部6aの捩れ角度を生じさせる振動を抑制することができる。
【0128】
また、シャフト7の重心位置に応じて慣性モーメントが変化するという従来技術では考慮されていなかった事象を考慮した上で振動抑制制御を行っていることから、従来技術では考慮すらされていなかったために抑制することができなかった動作方向とは異なる非動作方向振動を、抑制することができる。
このとき、ノッチフィルタ演算に用いるフィルタパラメータを、シャフト7側の重心位置に応じて変化する反共振周波数の変化に追従させて可変とすることにより、シャフト支持部6aからシャフト7側の重心位置までの距離に反比例する可変周波数に対して抑制周波数を求めることができる。
【0129】
また、上記したノッチフィルタは制御系のどこに挿入しても効果を発揮することができるものの、フィードバック制御系の内部に挿入した場合、抑制周波数が低くなるとフィードバック制御系の不安定化を招くおそれがある。そのため、位置指令値に対してノッチフィルタ演算を行うなど、フィードフォワード制御系として実施するとより効果的である。
【0130】
また、シャフト7側の重心位置を求め、求めた重心位置とシャフト支持部6aとの距離に基づいて当該重心位置における慣性モーメントに対応する抑制周波数を求め、求めた抑制周波数に対してノッチフィルタ演算を行うことで、シャフト支持部6aの捩れ角度を生じさせる振動を抑制する振動抑制制御を行う制御方法によっても、上記した効果を同様に得ることができる。
【0131】
(その他の実施形態)
本発明は、上記し且つ図面に記載した態様に限定されるものではなく、その要旨を逸脱しない範囲で種々の変形や拡張をすることができる。
実施形態で示した数値は一例であり、これに限定されない。
ファーストアーム5とセカンドアーム6のそれぞれに複数方向への角速度を検出可能な2軸角速度センサを設けたが、それ以外のセンサ設置方法でもよく、例えば加速度センサと角速度センサとを組み合わせてもよい。例えば、配線距離が長くなるセカンドアーム6には省配線化のために角速度センサを設け、ファーストアーム5には第2実施形態のように2つの加速度センサを設けることなどが考えられる。
【符号の説明】
【0132】
図面中、2はロボット、3は制御装置(ロボット制御装置)、3aは制御部(Z軸高さ取得部、距離取得部、抑制周波数取得部、更新部、演算部)、4はベース、5はファーストアーム、6はセカンドアーム、6aはシャフト支持部、7はシャフト、8、9、10、11、12はセンサ(慣性センサ、角速度センサ、加速度センサ、回転角度センサ、位置センサ)を示す。
図1
図2
図3
図4
図5
図6
図7