【発明が解決しようとする課題】
【0004】
さて、シミュレーション上では所望の振動抑制効果が得られた制御内容を実際のロボットに適用した場合、シミュレーション通りの性能を発揮できないことがある。具体的には、シミュレーション上では現れなかった振動が、誤差として扱うには大きすぎるレベルで生じることがある。なお、ここではロボットの手先の振動、例えば4軸の水平多関節ロボット(SCARA(Selective Compliance Assembly Robot Arm)型ロボット)であれば、ボールねじスプライン等のシャフトの先端部分の振動を想定している。
【0005】
このとき、振動を検出するセンサをロボットの手先に設けることができれば、振動を直接的に検出できるため、振動を抑制するための制御を正しく行うことができると考えられる。なお、振動を検出するセンサとしては、加速度、速度、傾き、慣性等、振動を直接的または間接的に検出できるものであればよい。
【0006】
しかしながら、ロボットの手先にセンサを設けることは、一般に想像するよりも困難である。
例えば有線式のセンサをロボットの手先に設ける場合には、上記したように手先がシャフトの先端に位置していることから、センサ用のケーブルをアームおよびシャフトを経由させて配線する必要がある。このとき、単にケーブルを配線すれば良いという訳ではなく、各アームの回転やシャフトの回転および上下動からケーブルを保護するために、いわゆるケーブルリール等の保護部材が必要となる。つまり、センサを手先に設けること自体は比較的容易であったとしても、そのケーブルの取り回しや保護部材の設置といった配線構造が複雑化するという問題がある。
【0007】
一方、無線式のセンサを用いれば、配線構造の複雑化を回避することができると考えられる。しかし、無線式のセンサを手先に設けた場合、ロボットの動作中にセンサへ給電あるいは充電することが容易ではないことに加えて、ノイズによって無線通信が断続するおそれがある。そして、通信が断続した場合にはロボットの制御そのものができなくなるという問題がある。
【0008】
そして、根本的な問題として、ロボットの手先の振動がどのようなメカニズムで生じているのかが不明であるため、ロボットのどの位置でどのような物理量を検出すれば手先の振動に相関した振動を検出できるのかが明らかになっていないことが挙げられる。
【0009】
本発明は上記事情に鑑みてなされたものであり、その目的は、センサを設ける際の配線構造が複雑化することを防止しつつ、従来のシミュレーションには現れないロボットの振動を検出することができるセンサ位置決定方法、ロボットを提供することにある。
【課題を解決するための手段】
【0010】
さて、ロボットの制御分野では、モータとアーム間の減速機に存在するバネ要素による振動モードを考慮したいわゆる2慣性系のシミュレーションが利用されている。この振動モードは、減速機等の動力が伝達していく動力伝達機構における動作方向の剛性に起因する振動である。また、2慣性系のシミュレーションは、広く利用されており、その有効性は認知されていると考えられる。
【0011】
このとき、アームの剛性等の機械的数値はシミュレーション条件に当然盛り込まれており、実際のロボットは、そのシミュレーション条件を満たすような機械的数値の範囲で設計されている。それにも関わらずロボットに振動が生じるということは、従来の2慣性系で考慮されていた振動モードとは異なる振動モードが存在していると考えられる。
【0012】
そして、発明者らは、振動を生じさせる原因の調査を重ねた結果、実際のロボットでは、2慣性系の振動モードにおける動力伝達機構の動作方向の剛性による振動(以下、便宜的に動作方向振動と称する)以外にも、動力伝達機構の動作方向とは異なる振動(上記した非動作方向振動)が存在していることを見いだした。つまり、動作方向とは異なる向きの非動作方向振動がシミュレーションには現れなかった振動の原因であることを突き止めるとともに、その非動作方向振動によってロボットの可動部側が全体的に動作方向以外にも揺れて、その結果、手先に振動が生じていることを見いだした。
【0013】
ところで、もしも非動作方向振動の存在が今まで認知されていたならば、非動作方向振動に対処するための制御方法が検討されているはずである。しかし、実際には、非動作方向振動の存在を示唆するような考察や非動作方向振動を抑制するための制御方法等は検討されていない。つまり、非動作方向振動は、今まで認知されていなかったと考えられる。そのため、発明者らは、なぜ今まで非動作方向振動が考慮されていなかったのかについて考察した。
【0014】
最初期の産業用のロボットは、近年のロボットと比べて、格段にアームやギアあるいは軸受け部材などが相対的に太く且つ頑丈であった反面、アームおよび可動部分の全体の重量が相対的に大きかった。2慣性系の場合、共振周波数は、慣性(つまり重量)の逆数の平方根に比例することから、動作方向振動の共振周波数は低くなる。その一方で、アームを構成する部材等は非常に高剛性に作られており、非動作方向共振が存在していたとしても、その共振周波数は高くなっていたと考えられる。
【0015】
一般的に、複数の共振が存在する場合、低い共振周波数を持つ共振による影響が支配的となる場合が多い。つまり、非動作方向共振は、共振周波数が相対的に高かったことから、アームの位置応答や速度応答へ与える影響は無視できるほど小さかったと考えられる。また、発明者らの研究の結果、非動作方向振動の発生原因には例えば遠心力のように非動作方向に加わる力の存在があることが判明したが、最初期のロボットは、近年のロボットに比べて動作速度が相対的に遅かったため、遠心力による影響は無視できるほど小さかったと考えられる。
【0016】
これに対して、近年のロボットでは、アームを太く頑丈にする方向から、細く軽量化する方向へとその設計が変化してきている。つまり、アームが軽量化されてきた反面、アームを構成する部材は、最初期のロボットに比べれば低剛性化している。なお、低剛性化しているとはいっても、柔軟アームと呼ばれるようなアーム自体が捻れてしまうような状態ではなく、例えばクロスローラなどの軸支持部で、その回転軸以外の方向に微少振動が発生しているということである。
【0017】
そのため、複数の共振が存在している状態において支配的な共振が最初期のロボットとは入れ替わってきた、あるいは、両者の共振が近い共振周波数となって互いに影響し合うような状態になってきたと考えられる。さらに、近年のロボットの場合、最初期のロボットと比べてその動作速度が格段に高速化されており、速度の2乗に比例する遠心力の影響がより顕著に現れてきたと考えられる。
【0018】
例えば4軸の水平多関節型ロボットの場合であれば、3軸目(シャフトに相当する)を上下方向(Z方向)へ直動する支持部が、例えば2軸目(第2アームに相当する)の動きに連動して振動してしまう現象が確認されている。この場合、軸間干渉による振動のようにシャフトの移動方向への振動(動作方向振動に含まれる)とは異なる振動、具体的には、第2アームの円周方向(第2アームの動作方向)や第2アームの直径方向(第2アームに加わる遠心力の方向)への振動が発生している。なお、6軸の垂直多関節型ロボット(PUMA(Programmable Universal Manipulation Arm)型ロボット)や、いわゆる7軸ロボット等の他の構成のロボットにおいても、これに類似する現象により、非動作方向振動が発生している。
【0019】
また、産業用のロボットにおいては、複数のアームが連結してロボットを構成することが多いため、ある軸が振動した結果、別の軸が干渉して振動するといった現象が発生する。このため、振動特性自体が単純な2慣性系モデルのようにはっきりとしたものとはならならず、複数の共振振動が周波数特定に現れること、また、周波数特性に現れる共振周波数と実際の振動波形に現れる共振周波数とに僅かな相違があることがある。そのため、非動作方向振動が存在していたとしても、非動作方向振動が原因となっていることを突き止めることが困難であったと考えられる。
【0020】
さらに、動作方向振動と非動作方向振動とでは振動周波数が異なることが多いものの、減速機として例えば波動歯車装置を用いている場合には、その剛性が入力されるトルクに応じて変化することが知られている等、モデル化誤差の原因となる要素が様々であることから、誰も非動作方向振動に想到することがなく、単に誤差として扱われていたものと考えられる。
【0021】
このような事情によって、シミュレーション上で現れた振動のうち最も影響度の大きいものを動作方向振動として扱い、それ以外は他の軸からの干渉などの誤差として扱っていたことから、非動作方向振動についての検討がなされてこなかったものと考えられる。つまり、最初期のロボットでは非動作方向振動がそれほど顕著ではなく、また、近年のロボットでは非動作方向振動が誤差として扱われていたことが、非動作方向振動が認知されていなかった理由であると推測された。
【0022】
そして、このような非動作方向振動の存在は、従来のシミュレーションの前提条件であった2慣性系モデルや、干渉を含めた2慣性系モデルを拡張した例えば特許文献1でいう4慣性モデル等の制御モデルでは実際のロボットの振動特性をそもそも表現しきれていなかったことを示しており、極めて重大な技術的意義をもっている。
【0023】
さて、非動作方向振動の存在が判明したのであれば、その非動作方向振動に起因して生じる振動を抑制するような制御を行えば、シミュレーションには現れなかった手先に生じる振動を抑制することができると考えられる。
【0024】
近年のロボットの場合、例えば静止しているアームを高速で回転動作させて停止させたときのような回転方向に生じる残留振動(動作方向振動)は、エンコーダにより検出できることから、モータに逆トルクをかけることで動作方向振動を収束させることができる。しかし、近年のロボットであっても、非動作方向振動が考慮されていなかったため、回転方向以外の振動を検出する手段をそもそも備えておらず、また、非動作方向振動の検出自体ができていないことから、その非動作方向振動を収束させる制御も行うこともできない構成となっている。
【0025】
この場合、ロボットの手先に振動を検出するセンサを設ければ非動作方向振動を含む振動を収束させるための制御を行うことができるものの、前述したように、ロボットの手先にセンサを設けることは困難であるとともに、センサを設けるために配線構造が複雑化してしまうことは好ましくない。
【0026】
ここで、発明者らが見いだした非動作方向振動によってロボットの可動部側が全体的に揺れているという点が重要になる。すなわち、非動作方向振動によって手先に振動が生じているのであれば、可動部分における非動作方向振動を検出することにより、直接的あるいは間接的に手先の振動を検出することができるのである。
【0027】
そこで、請求項1に係る発明では、ベースに対して所定の取り付け位置に取り付けられているとともに当該ベースに対して相対的に動作するアームにおいて、アームが動作した際にその動作方向とは異なる向きに振動する範囲を特定し、特定した範囲にアームの動作方向とは異なる向きに生じる非動作方向振動を検出する第1センサおよび第2センサを設けるとともに、第2センサを、第1センサと取り付け位置とを通る仮想的な線から離間した位置に設けている。
【0028】
ベースに取り付けられているアームは、ベースとの取り付け位置において支持されている。そのため、非動作方向振動によりロボットの可動部側が全体的に振動する場合、アームは、ベースへの取り付け位置を中心として振動することになる。
そのため、ベースとの取り付け位置よりもアームの先端側であれば、非動作方向振動に起因する振動を検出することができる。つまり、取り付け位置よりもアームの先端側が、動作方向とは異なる向きに振動する範囲となる。そして、この非動作方向振動によって動作方向とは異なる振動が手先に生じていることに鑑みると、アームに生じる非動作方向振動を検出することにより、手先の振動を検出することができる。
【0029】
ところで、アームは、取り付け位置で支持されていると考えることができる。そのため、ロボットの動作に伴ってアームがねじれた場合には、そのねじれは非動作方向振動を検出するセンサにとっての誤差となる。そこで、複数の第1センサと第2センサを設けることにより、各センサで検出されたデータに基づいてねじれを補正できると考えられる。
ただし、アームは、先端側から見た場合において取り付け位置を通りアームに沿って延びる仮想的な線を中心してねじれるため、第1センサおよび第2センサを設ける位置によっては、補正できないおそれがある。
【0030】
そのため、アームがねじれた際に検出されるデータが第1センサと第2センサと異なるようにすることで、つまりは、第2センサを第1センサと取り付け位置とを通る仮想的な線から離間した位置に設けることで、第1センサで検出されるデータ(例えば、角加速度)と第2センサで検出されるデータ(例えば、角加速度)とに差が生じることになり、もって、ねじれによる誤差を補正することができる。すなわち、非動作方向振動を検出する際の精度を向上させることができる。
【0031】
また、第1センサおよび第2センサは、ベースに取り付けられているアームに設けられている。このため、センサを接続するケーブル長を短くすることができるとともに、手先に設ける場合に比べて経由する関節部分が少なくなり、ケーブルを保護するための保護部材等を最小限とすることができる。これにより、ケーブルの取り回しを容易にすることができるとともに、配線構造を簡略化することができる。
【0032】
したがって、このような技術的思想に基づいて決定したセンサ位置にセンサを設けることにより、センサを設置する際の配線構造が複雑化することを防止しつつ、従来のシミュレーションには現れない手先の振動の原因であって手先の振動に相関する非動作方向振動を検出することができる。
【0033】
また、請求項2に記載した発明は、上記した請求項1に記載した発明と共通する技術的思想に基づいてなされており、ベースに取り付けられ、当該ベースに対して相対的に動作するアームと、アームの動作方向とは異なる向きに生じる非動作方向振動を検出する第1センサおよび第2センサと、を備えている。そして、第2センサは、第1センサと取り付け位置とを通る仮想的な線から離間した位置に設けられている。
【0034】
これにより、アームの動作方向とは異なる向きに生じる非動作方向振動を精度良く検出することができるとともに、配線構造が複雑化するおそれを低減することができる等、上記した請求項1に係る発明と同様の効果を得ることができる。このとき、ロボットは、例えば6軸の垂直多関節型ロボットや、いわゆる7軸ロボット、あるいは4軸の水平多関節型ロボット等、任意の構成を採用することができる。
【0035】
この場合、請求項3に記載した発明のように、第1センサおよび前記第2センサを、取り付け位置を通りアームに沿った方向に延びる仮想的な線に対して対称となる位置に設けることにより、演算に用いる数値が共通化されて、ねじれによる誤差を補正する際の演算を簡素化することができ、もって、ロボットを制御する際の処理速度の向上を期待できる。
【0036】
より具体的には、例えば請求項4に記載した発明のように、水平多関節型ロボットにおいては、第1センサおよび第2センサを、第1アームにおいて第1軸よりも第2軸側に位置して設けることにより、第1アームの動作方向とは異なる向きに生じる非動作方向振動を検出することができる。また、第1アームはベースに取り付けられていることから、各センサを接続する際のケーブル長を短くすることができるとともに、ケーブルが経由する関節部分は第1軸だけとなるので、配線構造が複雑化することを防止できる。