(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、ロボットは、例えばフランジ構造の手先を回転駆動するとき、その回転方向を2つ設定することができる。具体的には、現在位置から例えば+90°となる回転位置まで回転駆動する際には、現在位置から+90°回転駆動する回転方向と、現在位置から−270°回転駆動する回転方向とが存在している。そして、いずれの回転方向で回転駆動されたとしても、最終的には、手先は現在位置から+90°の回転位置まで回転駆動されることになる。
【0006】
しかしながら、従来では、上記したように所要時間を短縮するために、始点から終点までの姿勢の変化量が少なくなる回転方向が選択されていた。つまり、従来では、始点、経由点および終点の3点が教示された場合であっても、経由点での姿勢を考慮せずに、始点での姿勢から終点での姿勢まで回転駆動する際の回転量が小さくなる回転方向が選択されていた。その結果、180°を超えるような回転を行うことができず、実際に回転駆動されたときの経由点での姿勢が、教示された姿勢から大きくずれてしまうことがあった。
【0007】
この場合、教示点の数を増やせば姿勢を細かく制御することが可能であるものの、そのようにしてしまうと、小数の教示点を設定するだけでロボットの軌道全体を設定できるという補間による制御を行うメリットがなくなってしまう。
本発明は、上記事情に鑑みてなされたものであり、その目的は、補間による制御を行う場合において、教示点の数が少なくとも経由点での姿勢を教示されて姿勢に近づけることができるロボットの制御方法、ロボットの制御装置を提供することにある。
【課題を解決するための手段】
【0008】
請求項1記載のロボットの制御方法の発明では、教示された始点、経由点および終点の3点の教示点間を曲線で補間して多関節型のロボットの軌道を求める際に、始点から終点まで姿勢を変化させた際の姿勢の変化量が相対的に小さくなる近回りの回転方向を選択した場合の近回り軌道と、近回り軌道とは逆向きの回転方向であって、始点から終点まで姿勢を変化させた際の姿勢の変化量が相対的に大きくなる遠回りの回転方向を選択した場合の遠回り軌道とを求める。つまり、いずれの回転方向が教示された姿勢に近くなるかを評価するために、2通りの回転方向の軌道を予め求める。
【0009】
続いて、各軌道について、始点から終点までの姿勢変化を表すオイラーベクトルを求め、始点から終点までの軌道全体に対する始点から経由点までの割合に基づいて、各軌道における経由点までの姿勢の変化量を示す回転量成分を求める。これは、ロボットの動作量、すなわち軌道を動く量は、突き詰めれば各軸のモータの角度変化量によって生み出されており、また、ロボットの任意点における姿勢も、モータの角度によって生み出されるものであるためである。つまり、ロボットの動作量も姿勢の変化もつきつめれば同じ変数によって生み出されるものであるから、それらを活用し、始点から経由点までの軌道の割合に基づくことにより、経由点での実動作時の姿勢が推定できるためである。
【0010】
続いて、各軌道の経由点までの回転量成分に基づいて各軌道における経由点での姿勢を求め、各軌道における経由点での姿勢と教示された経由点での姿勢との姿勢変化を表すオイラーベクトルを求め、その回転量成分を教示された経由点からの姿勢の変化量として求める。これにより、各軌道における経由点での姿勢と教示された経由点での姿勢との姿勢の差分、つまり、各軌道における経由点での姿勢が教示された経由点での姿勢に対してどの程度ずれているかを求めることができる。
【0011】
そして、各軌道の姿勢の変化量を比較し、近回り軌道における姿勢の変化量が遠回り軌道における姿勢の変化量以下の場合には、近回り軌道で動作させることで経由点の姿勢を経由する状態、すなわち、始点から終点までの動作の中で教示された経由点での姿勢に近い姿勢が出現する状態となるので、実際にロボットを回転させる際の回転方向を近回りの回転方向に設定する。
一方、近回り軌道における姿勢の変化量が遠回り軌道における姿勢の変化量よりも大きい場合には、近回り軌道で動作させた場合には始点から終点までの動作の中で教示された経由点での姿勢に近い姿勢が出現しないことになるので、実際にロボットを回転させる際の回転方向を遠回りの回転方向に設定する。
【0012】
つまり、各軌道における経由点での姿勢が教示された経由点での姿勢からどの程度ずれているかを評価し、その評価結果に基づいて回転方向を設定している。
このように、近回りの軌道と遠回りの軌道とにおける経由点での姿勢が、教示された経由点での姿勢からどの程度ずれているかを予め評価し、その評価結果に基づいて回転方向が設定される。これにより、遠回りの回転方向が選択肢に組み込まれ、180°を超えるような回転が可能となる。そして、経由点での姿勢に近づける方向に回転方向を設定するので、より教示された経由点での姿勢に近くなることから、補間による制御を行う場合において、経由点での姿勢を教示された姿勢に近づけることができる。つまり、経由点での姿勢が教示された姿勢から大きくずれることを抑制することができる。
【0013】
請求項2記載のロボットの制御装置の発明は、上記した請求項1記載のロボットの制御方法を実現するために、軌道取得手段、ベクトル取得手段、割合取得手段、回転量取得手段、姿勢取得手段、比較手段とおよび設定手段を備えている。これにより、上記した請求項1記載のロボットの制御方法を採用したロボットの制御装置を実現できる。したがって、請求項1記載のロボットの制御方法で述べたような効果を得ることができる。
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態について、
図1から
図9を参照しながら説明する。
図1に示すように、ロボットシステム1は、多関節型のロボット2、ロボット2を制御するコントローラ3、コントローラ3に接続されたティーチングペンダント4を備えている。このロボットシステム1は、一般的な産業用に用いられている。
【0016】
ロボット2は、いわゆる6軸の垂直多関節型ロボットとして周知の構成を備えており、ベース5上に、Z方向の軸心を持つ第1軸(J1)を介してショルダ6が水平方向に回転可能に連結されている。ショルダ6には、Y方向の軸心を持つ第2軸(J2)を介して上方に延びる下アーム7の下端部が垂直方向に回転可能に連結されている。下アーム7の先端部には、Y方向の軸心を持つ第3軸(J3)を介して第一上アーム8が垂直方向に回転可能に連結されている。第一上アーム8の先端部には、X方向の軸心を持つ第4軸(J4)を介して第二上アーム9が捻り回転可能に連結されている。第二上アーム9の先端部には、Y方向の軸心を持つ第5軸(J5)を介して手首10が垂直方向に回転可能に連結されている。手首10には、X方向の軸心を持つ第6軸(J6)を介してフランジ11が捻り回転可能に連結されている。以下、第6軸を、便宜的に手先軸とも称する
ベース5、ショルダ6、下アーム7、第一上アーム8、第二上アーム9、手首10およびフランジ11は、ロボット2のアームとして機能し、アームの先端となるフランジ11には、図示は省略するが、ハンド(エンドエフェクタとも呼ばれる)が取り付けられる。ハンドは、例えば図示しないワークを保持して移送したり、ワークを加工する工具等が取り付けられたりする。ロボット2に設けられている各軸(J1〜J6)には、それぞれに対応して駆動源となるモータ(図示省略)が設けられている。
【0017】
コントローラ3は、ロボットの制御装置に相当し、図示しないCPU、ROMおよびRAM等で構成されたコンピュータからなる制御部においてコンピュータプログラムを実行することで、ロボット2を制御している。具体的には、コントローラ3は、インバータ回路等から構成された駆動部を備えており、各モータに対応して設けられているエンコーダで検知したモータの回転位置に基づいて例えばフィードバック制御によりモータを駆動する。このコントローラ3は、軌道取得手段、ベクトル取得手段、割合取得手段、姿勢取得手段、回転量取得手段、変化量取得手段、比較手段、設定手段を構成している。
ティーチングペンダント4は、例えば概ね略矩形箱状に形成されており、ユーザが所持したまま操作可能な程度の大きさに形成されている。このティーチングペンダント4には、各種キースイッチやタッチパネル等が設けられており、ユーザは、それらキースイッチやタッチパネル等を用いてティーチングを行う。
【0018】
このような構成のロボットシステム1では、ロボット2を制御する際の基準となる座標系が設定されている。本実施形態の場合、ベース5に対応する座標系が、基準座標系Σ
Bとなる。この基準座標系Σ
Bは、ロボット2がどのような姿勢を取ったとしても変化することがない座標系である。この基準座標系Σ
Bには、互いに直交するX
B軸、Y
B軸およびZ
B軸が設定されている。なお、Z
B軸は設置面に垂直な軸となっている。
【0019】
また、ロボット2では、手先軸(J6)に対応する座標系Σ
Fが設定されている。この座標系Σ
Fは、フランジ11の向きを手先軸の原点を基準として示す座標系であり、互いに直交するX
F軸、Y
F軸およびZ
F軸が設定されている。このうち、Z
F軸は、手先軸と同軸に設定されている。つまり、Z
F軸の向きが、フランジ11の向き、つまり、手先の向きを示すことになる。
【0020】
また、ロボット2の姿勢を表す際には、基準座標系Σ
Bからみた手先の向きを表すベクトルが用いられる。具体的には、座標系Σ
FのX
F軸方向を表す3次元ベクトルであるノーマルベクトル(N)、基準座標系Σ
Bからみた座標系Σ
FのY
F軸方向を表す3次元ベクトルであるオリエントベクトル(O)、および、基準座標系Σ
Bからみた座標系Σ
FのZ
F軸方向を表す3次元ベクトルであるアプローチベクトル(A)が制御に用いられる。
これら各ベクトルは、以下の(1)式〜(3)式にて表される。
【0022】
上記した(1)式〜(3)式に付されているTは、以下の(4)式に示すように、基準座標系Σ
Bから座標系Σ
Fへの座標変換を行う4行4列の行列であり、同次変換行列と称される。この同次変換行列は、ロボット2の手先の位置と姿勢を表すために用いられる。
【0024】
なお、(4)式に示されているRは、ノーマルベクトル、オリエントベクトルおよびアプローチベクトルを纏めた3行3列の行列であり、R=(N O A)として表される。また、(4)式に示されているPは、座標系Σ
Fの原点の位置を基準座標系Σ
Bで表した3次元ベクトルである。
【0025】
ここで、始点、経由点および終点の3点が教示点として示された場合における従来の補間による制御について、
図2を参照しながら説明する。以下、複数の教示点間を曲線にて補間する制御を、便宜的に補間制御と称する。なお、この補間制御は、一般的には円弧制御とも称されるが、必ずしも円弧に限らず、スプライン曲線等で補間されることもある。
【0026】
例えば
図2(a)に示すように、互いに異なり、且つ、直線上にない始点(K1)、経由点(K2)および終点(K3)の3点が、ユーザにより教示点として設定されたとする。このとき、各教示点での姿勢は、
図2(b)に示したようになっているものとする。なお、
図2(b)では、説明の簡略化のために、K1〜K3におけるアプローチベクトル(A1〜A3)にのみ符号を付している。以下、便宜的に、始点での姿勢を始点姿勢と称し、終点での姿勢を終点姿勢と称し、経由点での姿勢を経由点姿勢と称する。
【0027】
このとき、従来の補間制御では、
図2(c)に示すように、経由点姿勢を考慮せずに、始点姿勢から終点姿勢となるまでの時間が最短となるようにロボット2を回転駆動していた。その結果、
図2(d)に示すように、回転駆動される際の経由点のアプローチベクトル(A4)が、
図2(a)に示した教示された経由点のアプローチベクトル(A2)と一致しない状態、つまり、回転駆動した際の経由点姿勢が教示された姿勢から大きくずれた状態となることがあった。
【0028】
これは、ロボット2を回転駆動する際には、その回転方向が2つ存在するためである。例えば、
図3(a)に示すように、手先軸のアプローチベクトルがA1である始点姿勢から、アプローチベクトルがA3である終点姿勢となるように回転駆動する場合を考えてみる。この場合、始点から終点まで回転駆動する回転方向としては、相対的に回転量が少なく、回転駆動に要する時間が最短時間となる姿勢回転方向D1(以下、近回りと称する)と、相対的に回転量が多く始点から終点まで回転駆動するのに要する最短時間とはならない姿勢回転方向D2(以下、遠回りと称する)とが存在する。なお、
図3では、説明の簡略化のために、アプローチベクトルA1、A3の基点を重ねている。
【0029】
このとき、従来では、始点姿勢と終点姿勢とだけを考慮し、始点から終点まで回転駆動させたときの時間が最短時間となるように、近回りが選択されていた。その結果、例えば
図3(b)に示すように、実際に回転駆動されたときの経由点でのアプローチベクトル(A4)が、教示された経由点でのアプローチベクトル(A2)に対して例えば逆向きになる等、経由点での姿勢が大きくずれるおそれがあった。そして、ロボット2の手先にはツールが取り付けられることから、手先の向きがずれてしまうと、ツールの向きもずれてしまう。その結果、ワークが意図しない形状に加工されたりするおそれがあった。この場合、アプローチベクトルに限らず、後述する
図4に示すようなノーマルベクトルやオリエントベクトルが変化する場合には、同様に教示された姿勢から大きくずれる可能性があった。
【0030】
また、教示点の数を増やし、ロボット2の軌跡を細かく制御することで、上記したずれが生じることを防止することができると考えられるが、そのような対処方法は、少ない教示点を設定することで軌跡全体を設定できるという補間制御の意義が薄れてしまう。
【0031】
そこで、本実施形態では、補間制御を行う場合において、実際に回転駆動されたときの経由点姿勢とユーザにより教示された経由点姿勢とが大きくずれることを抑制している。
まず、姿勢行列を用いて2つの座標間の姿勢変化を表す手法について、
図4を参照しながら説明する。
図4に示すように、基準座標系Σ
Bに任意の2点が存在し、一方が座標系Σ
F1で表される例えば始点であり、他方が座標系Σ
F2で表される例えば終点であるとする。このとき、始点からみた終点の姿勢行列を
F1R
F2とすると、姿勢行列
F1R
F2は、以下の(5)式で表すことができる。
【0033】
ただし、(5)式において、
BR
F1は、基準座標系Σ
Bから座標系Σ
F1への同次変換行列
BT
F1に含まれる姿勢行列であり、
BR
F2は、基準座標系Σ
Bから座標系Σ
F2への同次変換行列
BT
F2に含まれる姿勢行列である。
【0034】
そして、座標系Σ
F1から座標系Σ
F2への姿勢の変化量ΔRは、座標系Σ
F1から座標系Σ
F2への姿勢行列
F1R
F2と同義であるので、上記した(5)式から、姿勢の変化量ΔRは、以下の(6)式にて表される。
【0036】
さて、本実施形態では、後述するように、回転駆動する際の回転方向を、オイラーベクトル表現した際の回転量成分θにより判定する。オイラーベクトルは、周知のように、オイラーベクトルはある姿勢行列Rを、回転軸となる以下の(7)式で示される単位ベクトルのベクトル成分V(v
x,v
y,v
z)と、回転量成分θとで表現する手法である。
【0038】
そして、上記した(6)式をオーラ−ベクトルの公式に適用することで、以下の(8)式および(9)式に示すように、座標系Σ
F1と座標系Σ
F2との間の姿勢の変化量(ΔR)を、ベクトル成分と回転量成分とで表現することができる。
【0040】
これら姿勢変化をオイラーベクトル表現するための処理は、コントローラ3によって行われている。そして、コントローラ3は、姿勢変化をオイラーベクトル表現した際のベクトル成分(v)と回転量成分(θ)とに基づいて、補間制御を行う際の回転駆動の回転方向を上記した近回りとするか遠回りとするかを判定する。より具体的には、本実施形態の場合、コントローラ3は、
図2に示したような互いに異なり、且つ、直線上にない始点(K1)、経由点(K2)および終点(K3)の3点が教示点として設定されたとき、
図5に示す回転方向設定処理を実行することで回転方向を判定する。
【0041】
この回転方向設定処理において、コントローラ3は、まず、始点から終点まで最短で回転駆動することができる回転方向(以下、近回りと称する)にてロボットを制御する場合の動作軌跡である軌道1(近回り軌道に相当する)と、始点から終点まで最短で回転駆動することができる回転方向とは逆の回転方向(以下、遠回りと称する)にてロボットを制御する場合の動作軌跡である軌道2(遠回り軌道に相当する)とを求める(S1)。つまり、コントローラ3は、近回り軌道と遠回り軌道とを求める軌道取得手段として機能する。
【0042】
次に、コントローラ3は、始点から終点までの姿勢変化を表すオイラーベクトルの回転量成分θを、軌道1に対応する回転量成分θ1、軌道2に対応する回転量成分θ2として求める(S2)。つまり、コントローラ3は、近回り軌道と遠回り軌道について、始点から終点までの姿勢変化を表すオイラーベクトルを求めるベクトル取得手段として機能する。
【0043】
続いて、コントローラ3は、軌道全体に対する始点から経由点までの割合αを求める(S3)。なお、軌道1と軌道2とは、回転方向つまり姿勢の変化の態様が異なっているのであり、始点から終点までの動作軌跡つまり補間された曲線自体は同じである。そのため、ステップS3では、割合αを1つ求めればよい。つまり、コントローラ3は、軌道全体に対する始点から経由点までの割合を求める割合取得手段として機能する。
【0044】
この割合αは、始点から経由点までの回転量成分θの変化の割合も示している。すなわち、補間制御においては、姿勢の変化は始点から終点までの姿勢変化は、オイラーベクトルの回転量成分の変化により表される。そして、補間制御においては、位置の変化と姿勢の変化とが同期しているので、位置が軌道全体のX%移動した場合には姿勢も軌道全体のX%変化することになるためである。つまり、始点から経由点までの位置の割合αを用いることで、経由点までの回転量成分を求めることができる。そして、経由点までの回転量成分が求まれば、経由点における姿勢を求めることができる。
【0045】
そのため、コントローラ3は、各軌道について経由点までの回転量成分を、軌道1についてはαθ1、軌道2についてはαθ2として求める(S4)。つまり、コントローラ3は、始点から経由点までの割合に基づいて各軌道における経由点までの回転量成分を求める回転量取得手段として機能する。
【0046】
経由点までの回転量成分を算出すると、コントローラ3は、軌道1における経由点での姿勢R1と、軌道2における経由点での姿勢R2とを求める(S5)。例えば、
図6(a)に示すように始点(K1)、経由点(K2)および終点(K3)の3点が教示された場合、コントローラ3は、近回りの軌道1については
図6(b)に示すように経由点姿勢(R1)を求め、遠回りの軌道2については
図6(c)に示すように経由点姿勢(R2)を求める。なお、教示された経由点姿勢(Rv)は、教示データから求めることができる。つまり、コントローラ3は、各軌道の経由点までの回転量成分に基づいて、各軌道における経由点での姿勢を求める姿勢取得手段として機能する。
【0047】
次に、コントローラ3は、教示された経由点姿勢(Rv)と、各軌道の経由点姿勢(R1、R2)との姿勢の変化量を表すオイラーベクトルを求め、その回転量成分を、軌道1についてθ1’、軌道2についてθ2’として求める(S6)。
つまり、コントローラ3は、各軌道における経由点での姿勢と教示された経由点での姿勢との姿勢変化を表すオイラーベクトルを求め、その回転量成分を教示された経由点からの姿勢の変化量として求める変化量取得手段として機能する。
【0048】
続いて、コントローラ3は、θ1’がθ2’以下であるかを判定する(S7)。つまり、コントローラ3は、教示された経由点姿勢(Rv)から軌道1の経由点姿勢(R1)まで姿勢を変化させた際の回転量成分と、教示された経由点姿勢(Rv)から軌道2の経由点姿勢(R2)まで姿勢を変化させた際の回転量成分とを比較する。すなわち、経由点姿勢(R1、R2)が教示された経由点姿勢(Rv)からどれだけ変化しているかを評価する。つまり、コントローラ3は、各軌道の姿勢の変化量を比較する比較手段として機能する。
【0049】
そして、コントローラ3は、θ1’がθ2’以下である場合には(S7:YES)、姿勢回転方向を近回りに設定する(S8)。つまり、軌道1のほうが軌道2よりも教示された経由点姿勢(Rv)からの姿勢の変化量が少ないことから、軌道1を求めた際の回転方向すなわち近回りを、実際にロボット2を回転駆動する際の回転方向に設定する。これに対して、コントローラ3は、θ1’がθ2’以下でない場合には(S7:NO)、姿勢回転方向を遠回りに設定する(S8)。つまり、軌道1のほうが軌道2よりも教示された経由点姿勢(Rv)からの姿勢の変化量が多ければ、軌道2を求めた際の回転方向すなわち遠回りを、実際にロボット2を回転駆動する際の回転方向に設定する。つまり、コントローラ3は、実際にロボットを回転させる際の回転方向設定する設定手段として機能する。
【0050】
このように、コントローラ3は、近回りと遠回りとの双方の軌道について、その経由点姿勢(R1、R2)が教示された経由点姿勢(Rv)からどれだけ変化しているかを評価し、その評価結果に基づいて回転方向を設定する。これにより、実際に補間制御を行った際の経由点姿勢を、教示された経由点姿勢(Rv)により近づけることができる。そして、遠回りの回転方向が設定された場合には、180°を超えて回転駆動することができるようになる。
【0051】
その結果、例えば
図8(a)に示すような教示点つまり姿勢がユーザにより教示されたとき、回転方向設定処理によって180°を超える回転方向を選択できるようになり、教示された経由点姿勢に近づく回転方向が選択されて、例えば
図8(b)に示すように教示されたアプローチベクトル(A2)と実際に回転駆動する際のアプローチベクトル(A4)が一致する等、実際の軌道における経由点姿勢を教示された経由点姿勢と同じあるいは近似した姿勢にすることができる。
【0052】
以上説明した本実施形態によれば、次のような効果を得ることができる。
実施形態の制御方法では、教示された始点、経由点および終点の3点の教示点間を曲線で補間して多関節型のロボットの軌道を求める際に、近回り軌道と遠回り軌道とを求め、各軌道における経由点での姿勢を求めた後、教示された経由点での姿勢から各軌道の経由点での姿勢までの姿勢変化を表すオイラーベクトルの回転量成分を求める。これにより、各軌道における経由点での姿勢と教示された経由点での姿勢と差分つまり姿勢のずれが求まり、各軌道における経由点での姿勢が教示された経由点での姿勢対してどの程度ずれているかを把握できる。
【0053】
そして、各軌道における経由点での姿勢の変化量を比較し、近回り軌道における回転量成分が遠回り軌道における回転量成分以下の場合には実際にロボットを回転させる際の回転方向を近回りの回転方向に設定する一方、近回り軌道における回転量成分が遠回り軌道における回転量成分よりも大きい場合には実際にロボットを回転させる際の回転方向を遠回りの回転方向に設定する。つまり、近回りの軌道と遠回りの軌道とにおける経由点での姿勢が、教示された経由点での姿勢からどの程度ずれているかを予め評価する。これにより、遠回りの回転方向が選択肢に組み込まれ、180°を超えるような回転が可能となる。そして、実際に回転駆動した際の経由点での姿勢を教示された経由点での姿勢に近づけることができる。したがって、補間による制御を行う場合において経由点での姿勢が教示された姿勢から大きくずれることを抑制できる。
【0054】
コントローラ3は、上記した制御方法を実現するために、軌道取得手段、ベクトル取得手段、割合取得手段、回転量取得手段、姿勢取得手段、比較手段とおよび設定手段として機能する。これにより、上記した制御方法を採用したロボットの制御装置を実現でき、補間制御により実際にロボット2を制御する際に180°を超える回転方向を選択することができ、教示された姿勢に近づけることができる等、上記した制御方法で述べたような効果を得ることができる。
本発明は上記した一実施形態に限定されるものではなく、その要旨を逸脱しない範囲で任意に変形または拡張することができる。