(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、本発明による制御装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
【0014】
(実施の形態1)
本発明の実施の形態1によるマニピュレータの制御装置について、図面を参照しながら説明する。本実施の形態によるマニピュレータの制御装置は、外乱を考慮して設定された経由教示点に応じてマニピュレータの移動を制御するものである。
【0015】
図1は、本実施の形態による産業用ロボットの構成を示すブロック図である。本実施の形態による産業用ロボットは、制御装置1と、サーボコントローラ2と、マニピュレータ3とを備える。マニピュレータ3は、モータによって駆動される関節によって連結された複数のアームを有する。そのマニピュレータ3において、各モータとアームとは減速器を介して接続されている。また、直列に接続されたアームの先端にはハンド等の手先効果器(エンドエフェクタ)が設けられていてもよい。マニピュレータ3は、例えば、水平多関節ロボットのマニピュレータであってもよく、または、垂直多関節ロボットのマニピュレータであってもよい。サーボコントローラ2は、制御装置1による制御に応じて、マニピュレータ3の各軸のモータを制御する。制御装置1は、ティーチングプレイバック方式により、後述する教示情報に応じてマニピュレータ3が動作するようにサーボコントローラ2を制御する。本実施の形態による産業用ロボットは、例えば、搬送ロボットであってもよく、溶接ロボットであってもよく、組立ロボットであってもよく、塗装ロボットであってもよく、あるいは、その他の用途のロボットであってもよい。
【0016】
図1で示されるように、制御装置1は、教示情報記憶部11と、曲線補間部12と、軌道制御部13とを備える。
教示情報記憶部11では、教示情報が記憶される。その教示情報には、教示点と、目標時間とが含まれる。その教示点には、開始教示点と、目標教示点と、経由教示点とがある。開始教示点は、マニピュレータ3の移動の開始点の教示点である。目標教示点は、マニピュレータ3の移動の目標点の教示点である。経由教示点は、開始教示点から目標教示点までの間において、両点間をマニピュレータ3が移動するように外乱を考慮して設定された1以上の教示点である。通常、経由教示点は、開始教示点から目標教示点までの間に、2個以上設定される。その外乱は、例えば、ウェハやガラス基板等の搬送対象や、手先効果器が把持している部品等の重量、あるいは、マニピュレータ3の自重等に応じた外乱である。そのような外乱の存在の下、マニピュレータ3を開始教示点から目標教示点まで、1以上の経由教示点を経由しながら移動させることによって、結果として、マニピュレータ3が、開始教示点から目標教示点までを直線で結ぶ目標ルート上を移動することになる。
図2Aは、開始教示点P
sと、目標教示点P
eと、経由教示点P
1'、P
2'、P
3'との一例を示す図である。
図2Aにおいて、一点鎖線で示される直線のルートが目標ルートGである。また、実線で示される折線のルートが教示ルートKである。教示ルートKは、開始教示点P
s、1以上の経由教示点P
1'、P
2'、P
3'、及び目標教示点P
eを順に直線で結ぶルートである。すなわち、教示ルートKは、分岐のない連続した線分の集合である。なお、経由教示点P
n'から目標ルートへの垂線の足をシフト経由教示点P
nと呼ぶことがある。nは1以上の整数である。
図2Aにおいて、通常、教示ルートKの各線分は、目標ルートGに対して3次元のねじれの位置になるが、そうでなくてもよい。また、目標時間は、マニピュレータ3が開始教示点から目標教示点まで移動する時間である。なお、教示情報記憶部11では、開始教示点、目標教示点、両点間の1以上の経由教示点、及び目標時間のセットが1個記憶されていてもよく、または、2個以上記憶されていてもよい。なお、そのセットが2個以上記憶されている場合には、通常、あるセットの目標教示点が、次のセットの開始教示点となる。したがって、教示情報記憶部11では、マニピュレータ3が通過する教示点である固定教示点と、連続した2個の固定教示点間において外乱を考慮して設定された1以上の経由教示点と、連続した2個の固定教示点間の移動時間である目標時間とが記憶されていてもよい。その固定教示点は、その固定教示点を終点とする軌道に対しては目標教示点となり、その固定教示点を始点とする軌道に対しては開始教示点となる。また、教示情報記憶部11で記憶されている目標時間は、結果として、開始教示点から目標教示点までの移動時間を知ることができる情報であれば、どのような情報であってもよい。その移動時間そのものであってもよく、または、マニピュレータ3が開始教示点の位置に存在する時刻と、マニピュレータ3が目標教示点の位置に存在する時刻とであってもよい。後者の場合には、目標教示点の時刻から開始教示点の時刻を減算することにより、移動時間を算出することができる。したがって、それらの時刻が教示情報に含まれている場合にも、目標時間が教示情報に含まれていると考えることができる。なお、開始教示点や目標教示点、経由教示点は、通常、マニピュレータ3の先端である手先効果器の所定の位置の教示点である。また、教示情報記憶部11では、各教示点におけるマニピュレータ3の手先効果器の姿勢を示す情報も記憶されていてもよい。また、開始教示点から目標教示点までを直線で結ぶ目標ルートに応じた速さを示す情報も教示情報記憶部11で記憶されてもよい。その速さを示す情報は、例えば、50%や100%等のように、最大の速さに対する割合であってもよく、速度の時間変化を示す速度波形であってもよい。また、教示情報記憶部11では、教示情報以外の情報が記憶されてもよい。例えば、曲線補間部12が補間した曲線軌道を示す式等が教示情報記憶部11で記憶されてもよい。
【0017】
教示情報記憶部11に教示情報が記憶される過程は問わない。例えば、記録媒体を介して教示情報が教示情報記憶部11で記憶されるようになってもよく、通信回線等を介して送信された教示情報が教示情報記憶部11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された教示情報が教示情報記憶部11で記憶されるようになってもよい。教示情報記憶部11での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。教示情報記憶部11は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
【0018】
曲線補間部12は、教示ルートの各経由教示点について、経由教示点とその経由教示点の直前の教示点(この教示点は、経由教示点または開始教示点である)との間の線分上の点である曲線補間開始点から、その経由教示点と経由教示点の直後の教示点(この教示点は、経由教示点または目標教示点である)との間の線分上の点である曲線補間終了点までの間を曲線補間した開始教示点から目標教示点までのルートである曲線補間教示ルートを生成する。
図2Bは、その曲線補間教示ルートK'の一例を示す図である。
図2Bにおいて、曲線補間教示ルートK'は、開始教示点P
sから曲線補間開始点M
1'までの直線軌道と、曲線補間開始点M
1'から曲線補間終了点R
1'までの曲線軌道と、曲線補間終了点R
1'から曲線補間開始点M
2'までの直線軌道と、曲線補間開始点M
2'から曲線補間終了点R
2'までの曲線軌道と、曲線補間終了点R
2'から曲線補間開始点M
3'までの直線軌道と、曲線補間開始点M
3'から曲線補間終了点R
3'までの曲線軌道と、曲線補間終了点R
3'から目標教示点P
eまでの直線軌道とを有することになる。その曲線補間教示ルートK'では、移動方向が急に変化する点が存在しない。そのため、マニピュレータ3を曲線補間教示ルートK'に沿って移動させるように制御することにより、マニピュレータ3の速度変化が滑らかになる。なお、曲線補間開始点から曲線補間終了点までの曲線の種類は問わない。ただし、曲線補間開始点と曲線補間終了点とにおいて、曲線軌道が教示ルートKと滑らかに接続され、また曲線補間開始点から曲線補間終了点までの曲線軌道が滑らかな曲線であることが好適である。また通常、その曲線の外側に経由教示点が位置するように曲線補間が行われることが好適である。その曲線補間は、例えば、2次ベジェ曲線による補間であってもよく、スプライン曲線による補間であってもよく、円弧による補間であってもよく、エルミート曲線による補間であってもよく、その他の曲線による補間であってもよい。いずれの補間であっても、その曲線の曲線補間開始点における接線が、曲線補間開始点における教示ルートKの方向となり、その曲線の曲線補間終了点における接線が、曲線補間終了点における教示ルートKの方向となることが好適である。なお、曲線補間部12が曲線補間教示ルートを生成するとは、曲線補間教示ルートK'の全体を示す情報を教示情報記憶部11に蓄積することであってもよく、曲線補間によって生成された1以上の曲線軌道を示す情報を教示情報記憶部11に蓄積することであってもよい。後者の場合であっても、その曲線軌道以外の軌道については教示情報から知ることができるため、実質的に曲線補間教示ルートK'を生成したと考えることができる。
【0019】
ここで、曲線補間部12が曲線補間を行う方法について、
図3Aを用いて説明する。
図3Aにおいて、点P
n−1'、P
n'、P
n+1'は連続した経由教示点であり、点P
n−1、P
n、P
n+1は、それらの経由教示点にそれぞれ対応するシフト経由教示点である。シフト経由教示点は、前述のように、経由教示点から目標ルートへの垂線の足である。nは1からDまでの任意の整数であり、Dは経由教示点の個数である。なお、P
0'は開始教示点であり、P
D+1'は目標教示点であるとする。また、点M
n'は、経由教示点P
n−1'、P
n'を1−m:mに内分する曲線補間開始点であり、点M
nは、その曲線補間開始点M
n'に対応する目標ルート上の点であって、シフト経由教示点P
n−1、P
nを1−m:mに内分する点である。その点M
nをシフト曲線補間開始点と呼ぶこともある。また、点R
n'は、経由教示点P
n'、P
n+1'をr:1−rに内分する曲線補間終了点であり、点R
nは、その曲線補間終了点R
n'に対応する目標ルート上の点であって、シフト経由教示点P
n、P
n+1をr:1−rに内分する点である。その点R
nをシフト曲線補間終了点と呼ぶこともある。また、VP
n等を点P
n等のベクトル(または座標)とすると、曲線補間開始点等は次のようになる。
VM
n'=(1−m)VP
n'+mVP
n−1'
VR
n'=(1−r)VP
n'+rVP
n+1'
VM
n=(1−m)VP
n+mVP
n−1
VR
n=(1−r)VP
n+rVP
n+1
【0020】
ここで、0<m≦1、0<r≦1であり、このm、rを決定することにより、曲線補間開始点M
n'、及び曲線補間終了点R
n'が決まる。このm、rの値はあらかじめ図示しない記録媒体で記憶されていてもよい。また、その曲線補間開始点M
n'、及び曲線補間終了点R
n'において軌道が不連続とならないため、
m+r≦1
であるとする。また、m、rが次式をみたす場合には、曲線補間教示ルートは、開始教示点から1個目の曲線補間開始点までの間、及び、最後の曲線補間終了点から目標教示点までの間以外は、曲線となる。
m+r=1
【0021】
また、目標ルート上の点Pが点M
nから点R
nまでの間にある場合には、その点Pに対応する曲線補間教示ルート上の点P'は、点M
n'から点R
n'までの曲線上に存在することになる。その場合に、目標ルート上の点Pは、次のようになる。ただし、0≦t≦1であり、点Pは、t=0のときには点M
nと一致し、t=1のときには点R
nと一致することになる。
VP=(1−t)VM
n+tVR
n
【0022】
ここで、上記式をtについて解くと、次のようになる。なお、|VP
n−VM
n|等は、ベクトル(VP
n−VM
n)等の長さ(ノルム)である。
t=|VP
n−VM
n|/|VR
n−VM
n| (1)
【0023】
また、曲線補間開始点M
n'から曲線補間終了点R
n'までの曲線上の点P'は、次のようになる。ただし、0≦t≦1であり、t=0のときには点M
n'と一致し、t=1のときには点R
n'と一致することになる。また、その曲線は、2次ベジェ曲線であるとしている。曲線補間開始点M
n'から曲線補間終了点R
n'までの曲線軌道が次式で示される場合には、その曲線軌道は、曲線補間開始点M
n'、曲線補間終了点R
n'、経由教示点P
n'を含む平面上に存在することになるが、その曲線が2次ベジェ曲線でない場合であっても、その曲線は、それらの3点を含む平面上に存在することが好適である。
VP'=(1−t)
2VM
n'+2t(1−t)VP
n'+t
2VR
n' (2)
そして、上記VP'の式に、前述のtを代入することにより、
図3Bで示されるように、目標ルート上の点Pと、曲線補間教示ルート上の点P'との対応関係が決まることになる。なお、
図3Bにおいて、曲線補間開始点M
n'から曲線補間終了点R
n'までの曲線軌道は、2次ベジェ曲線である。
【0024】
なお、上述の説明では、曲線補間教示ルートの曲線軌道上の点と、目標ルート上の点との対応関係について説明したが、曲線補間教示ルートの直線軌道上の点と、目標ルート上の点との対応関係についても、同様になる。例えば、曲線補間終了点R
n−1'から曲線補間開始点M
n'までの直線区間上の点P'は、次のようになる。なお、0≦t≦1であり、点P'は、t=0のときには点R
n−1'と一致し、t=1のときには点M
n'と一致する。
VP'=(1−t)VR
n−1'+tVM
n' (3)
【0025】
ここで、目標ルート上の点Pが点R
n−1から点M
nまでの間にある場合には、目標ルート上の点Pは、次のようになる。なお、0≦t≦1であり、点Pは、t=0のときには点R
n−1と一致し、t=1のときには点M
nと一致する。
VP=(1−t)VR
n−1+tVM
n (4)
したがって、前述した曲線軌道の場合と同様に、直線軌道の場合も、式(4)をtについて解き、そのtを式(3)に代入することによって、目標ルート上の点Pと、曲線補間教示ルート上の点P'との対応関係を求めることができる。
【0026】
また、上述の説明では、曲線軌道が2次ベジェ曲線である場合について説明したが、前述のように、曲線軌道は2次ベジェ曲線以外であってもよい。なお、2次ベジェ曲線以外の曲線軌道であっても、曲線補間開始点から曲線補間終了点までを0≦t≦1のパラメータを用いて示すことができるパラメトリック曲線である場合には、前述の説明と同様になる。また、曲線軌道がパラメトリック曲線でなかったとしても、その曲線軌道上の点と、目標ルート上の点との対応関係が決められているのであれば、上述の説明と同様にして、目標ルート上の点Pと、曲線補間教示ルート上の点P'との対応を知ることができることになる。
【0027】
また、上述の説明では、m、rがすべて同じである場合について説明したが、そうでなくてもよい。曲線軌道ごとに、m、rがそれぞれ異なっていてもよい。その場合には、例えば、
図3Aにおいて、m、rがそれぞれm
n、r
nとなってもよい。軌道制御部13は、そのm
n、r
nの値を、例えば、教示ルートにおける経由教示点P
n'での折れ曲がりが大きい場合には、大きい値に設定し、教示ルートにおける経由教示点P
n'での折れ曲がりが小さい場合、すなわち、経由教示点P
n'で教示ルートが直線に近い場合には、小さい値に設定してもよい。または、そのm
n、r
n等の値は、あらかじめ設定されていてもよい。また、m、rがそれぞれm
n、r
nである場合には、曲線補間開始点M
n'、及び曲線補間終了点R
n'において軌道が不連続とならないために、次の式がみたされる必要がある。ただし、nは、1からDまでの整数であり、Dは、経由教示点の個数である。また、r
0=0であり、m
D+1=0とする。開始教示点P
sから1個目の経由教示点P
1'までには曲線補間終了点が存在せず、最後の経由教示点P
D'から目標教示点P
eまでには曲線補間開始点が存在しないからである。
r
n−1+m
n≦1
【0028】
軌道制御部13は、曲線補間教示ルートをマニピュレータ3が移動するように、サーボコントローラ2を制御する。その結果、マニピュレータ3の先端が、その曲線補間教示ルートに応じて移動することになる。なお、前述のように、教示ルートは、外乱を考慮して設定されたものであるため、軌道制御部13によって、曲線補間教示ルートをマニピュレータ3が移動するように制御されることによって、結果として、マニピュレータ3の先端が目標ルートまたは目標ルートの近傍を移動することになる。その制御において、軌道制御部13は、セクション目標時間で、そのセクション目標時間に対応する教示セクションをマニピュレータ3が移動するようにサーボコントローラ2を制御する。ここで、目標ルートは、複数の目標セクションに区画される。すなわち、その複数の目標セクションをつなげたものが、目標ルートとなる。また、その目標セクションごとに目標時間が分割されたものがセクション目標時間である。すなわち、ある目標ルートにおいて、セクション目標時間を全目標セクションについて合計した時間が目標時間となる。また、教示セクションは、目標セクションに応じた曲線補間教示ルートの区画である。なお、教示セクションと、目標セクションとは一対一に対応しているものとする。
【0029】
ここで、目標ルートGと曲線補間教示ルートK'とが
図2Bで示されるときの目標セクションと、教示セクションとの対応について説明する。なお、
図4A〜
図4Dにおいて、1個のセクションの両端を黒丸で示している。
(1)セクションの境界点がシフト曲線補間開始点及び曲線補間開始点である場合
この場合には、目標セクションの境界点はシフト曲線補間開始点M
nとなり、教示セクションの境界点は曲線補間開始点M
n'となる。したがって、目標セクションgs(1)〜gs(4)、及び教示セクションts(1)〜ts(4)は、
図4Aで示されるようになる。なお、n=1〜4について、目標セクションgs(n)と、教示セクションts(n)とが互いに対応するセクションである。
【0030】
(2)セクションの境界点がシフト曲線補間終了点及び曲線補間終了点である場合
この場合には、目標セクションの境界点はシフト曲線補間終了点R
nとなり、教示セクションの境界点は曲線補間終了点R
n'となる。したがって、目標セクションgs(1)〜gs(4)、及び教示セクションts(1)〜ts(4)は、
図4Bで示されるようになる。なお、n=1〜4について、目標セクションgs(n)と、教示セクションts(n)とが互いに対応するセクションである。
【0031】
(3)セクションの境界点がシフト曲線補間開始点・シフト曲線補間終了点及び曲線補間開始点・曲線補間終了点である場合
この場合には、目標セクションの境界点はシフト曲線補間開始点M
n及びシフト曲線補間終了点R
nとなり、教示セクションの境界点は曲線補間開始点M
n'及び曲線補間終了点R
n'となる。したがって、目標セクションgs(1)〜gs(7)、及び教示セクションts(1)〜ts(7)は、
図4Cで示されるようになる。なお、n=1〜7について、目標セクションgs(n)と、教示セクションts(n)とが互いに対応するセクションである。この場合には、曲線軌道がt(0≦t≦1)で示されるパラメトリック曲線であれば、各セクション上の点を1個のパラメータを用いて示すことが可能となる。例えば、各セクションの開始点でt=0となり、そのセクションの終了点でt=1となるt(0≦t≦1)を用いて、各目標セクション上の点、及び各教示セクション上の点を示すことが可能となる。
【0032】
(1)〜(3)で説明したように、教示セクションの境界点は、曲線補間開始点及び/または曲線補間終了点であってもよい。また、目標セクションの境界点は、曲線補間開始点に対応する目標ルート上の点(シフト曲線補間開始点)及び/または曲線補間終了点に対応する目標ルート上の点(シフト曲線補間終了点)であってもよい。その曲線補間開始点や曲線補間終了点に対応する目標ルート上の点は、
図3Aで説明したように、連続する2個のシフト経由教示点を、曲線補間開始点や曲線補間終了点が教示ルートの各線分を内分する内分比で内分した点であってもよい。
【0033】
(4)セクションの境界点がシフト経由教示点及びそれに対応する曲線軌道上の点である場合
この場合には、目標セクションの境界点はシフト経由教示点P
nとなり、教示セクションの境界点は、そのシフト経由教示点P
nに対応する曲線軌道上の点となる。その曲線軌道上の点は、例えば、目標ルートに垂直なシフト経由教示点P
nを含む平面と、曲線軌道との交点P
nc'であってもよい。なお、その平面は、目標ルートを法線とする平面である。したがって、目標セクションgs(1)〜gs(4)、及び教示セクションts(1)〜ts(4)は、
図4Dで示されるようになる。なお、n=1〜4について、目標セクションgs(n)と、教示セクションts(n)とが互いに対応するセクションである。
【0034】
なお、ここでは、目標セクションと教示セクションとの対応に関する4つの例(1)〜(4)について説明したが、各セクションは上記以外のものであってもよい。例えば、目標ルートをあらかじめ決められた個数や、あらかじめ決められた長さごとに目標セクションに区画し、その目標セクションの境界点に対応する曲線補間教示ルート上の点である教示セクションの境界点を特定することによって、目標セクション及び教示セクションを設定してもよい。その場合に、目標セクションの境界点と教示セクションの境界点との対応は、上述の(4)における両境界点の対応と同様であってもよい。
【0035】
次に、セクション目標時間の算出方法について説明する。この説明において、(A)移動が等速である場合と、(B)移動が加速及び減速を含む場合とに分けて説明する。なお、この説明では、開始教示点から目標教示点までの移動において、開始教示点の距離を0とし、目標ルートの距離をSとする。また、開始教示点の時刻を0とし、目標教示点の時刻をTとする。すなわち、目標時間をTとしていることになる。また、この説明では、上記(3)の場合について説明するが、他の(1)、(2)、(4)の場合も、同様である。
【0036】
(A)移動が等速である場合
等速で移動する場合には、時刻を横軸に取り、距離を縦軸に取ると、開始教示点から目標教示点までの目標ルートの移動における時間と距離との対応は、
図5Aで示されるようになる。なお、
図5Aにおいて、s(n)は、開始教示点から、目標セクションgs(n)の目標教示点に近い側の端点までの距離である。また、t(n)は、s(n)に対応する時刻である。また、S(=s(7))は、目標ルートの距離、すなわち、開始教示点P
sから目標教示点P
eまでの距離であり、T(=t(7))は、目標時間である。このように、目標ルートを等速で移動する場合には、軌道制御部13は、各目標セクションの境界点に対応する時刻を算出することができる。また、軌道制御部13は、隣接する2個の時刻の差を算出することにより、各目標セクションに対応するセクション目標時間を算出できる。具体的には、目標セクションgs(n)に対応するセクション目標時間は、t(n)−t(n−1)となる。なお、t(0)=0とする。
【0037】
(B)移動が加速及び減速を含む場合
加速及び減速を含む場合には、時刻を横軸に取り、距離を縦軸に取ると、開始教示点から目標教示点までの移動における時間と距離との対応は、
図5Bで示されるようになる。したがって、s(1)等を(A)の場合と同様にすると、軌道制御部13は、s(1)等にそれぞれ対応する時刻t(1)等を求めることができる。そして、軌道制御部13は、隣接する2個の時刻の差を算出することにより、各目標セクションに対応するセクション目標時間を算出できる。この場合も、目標セクションgs(n)に対応するセクション目標時間は、t(n)−t(n−1)となる。なお、t(0)=0である。この場合には、目標ルートを加速及び減速を含んで移動する場合の目標セクションごとの移動時間がセクション目標時間となる。
【0038】
また、ここでは、
図5A,
図5Bを用いて、移動が等速である場合と、移動が加速等を含む場合とについて説明したが、マニピュレータ3の移動の速度は、これらに限定されるものではない。例えば、その速度は、教示情報記憶部11で記憶されている速度波形に応じたものであってもよい。
【0039】
このようにして、軌道制御部13は、各セクション目標時間を算出することができる。そして、軌道制御部13は、教示セクションts(n)をマニピュレータ3が移動する場合に、その教示セクションts(n)に対応する目標セクションgs(n)のセクション目標時間で、教示セクションts(n)の始点から終点まで移動するように、サーボコントローラ2を制御する。
【0040】
具体的には、軌道制御部13は、教示セクションts(n)ごとに、その教示セクションts(n)に対応するセクション目標時間で移動するように補間を行い、補間周期ごとのマニピュレータ3の先端の位置を算出してもよい。そして、軌道制御部13は、補間周期ごとに、マニピュレータ3の先端が教示セクションの補間された位置となるように制御してもよい。そのようにすることで、結果として、曲線補間教示ルートの開始教示点から目標教示点までを、目標時間で移動するように制御できる。また、結果として、教示セクションごとに、その教示セクションに対応するセクション目標時間で移動するようにする制御するためには、各教示セクションts(n)の終点を通過する時刻が、その終点に対応する時刻t(n)となるように制御すればよいことになる。ただし、その時刻は、曲線補間教示ルートごとに0から始まるものである。したがって、軌道制御部13は、このような制御を行うことによって、結果として、マニピュレータ3が、教示セクションをそれに対応するセクション目標時間で移動するように制御してもよい。この場合には、軌道制御部13は、セクション目標時間の算出に代えて、教示セクションts(n)の終点に対応する時刻t(n)を算出してもよい。
【0041】
また、軌道制御部13は、目標ルートにおいて開始教示点から目標教示点までを目標時間で移動するように補間を行い、補間周期ごとの目標ルート上の位置を曲線補間教示ルート上の位置に変換してもよい。そして、軌道制御部13は、補間周期ごとに、マニピュレータ3の先端が変換後の曲線補間教示ルート上の位置となるように制御してもよい。この場合にも、曲線補間教示ルートの開始教示点から目標教示点までを、目標時間で移動するようにできる。また、目標ルート上で補間を行っているため、各教示セクションを、その教示セクションに対応する目標セクションのセクション目標時間で移動できていることは当然である。なお、ここでは、目標ルートにおいて補間を行う場合について説明したが、目標ルートの目標セクションごとに補間を行ってもよい。
【0042】
また、軌道制御部13は、ある教示セクションにおいて、その教示セクションに対応するセクション目標時間での移動を行うことができなかった場合、例えば、移動が速すぎた場合や遅すぎた場合には、それに応じて、それ以降の教示セクションにおける移動の制御を変更することによって、結果として、マニピュレータ3が目標時間で開始教示点から目標教示点までを移動するように制御してもよい。
【0043】
なお、その制御時に、軌道制御部13は、補間周期ごとのマニピュレータ3の先端の位置に対して逆キネマティクス変換を行い、マニピュレータ3の先端以外の各軸の位置指令値を算出してもよい。このようにして、軌道制御部13は、補間周期ごとのマニピュレータ3の全軸の位置指令値を算出でき、その位置指令値をサーボコントローラ2に出力することによって、サーボコントローラ2を制御することができる。なお、この軌道制御部13による処理は、産業用ロボットにおけるサーボコントローラの制御としてすでに公知であり、その詳細な説明を省略する。
【0044】
また、ここでは、軌道制御部13がセクション目標時間を算出する場合について説明したが、このセクション目標時間は、他の構成要素によって、軌道制御部13による軌道の制御が行われるまでに算出されてもよい。また、目標ルート上で補間を行う場合などのように、セクション目標時間を用いないで軌道の制御を行う場合には、セクション目標時間が算出されなくてもよい。
【0045】
ここで、サーボコントローラ2について簡単に説明する。サーボコントローラ2は、制御装置1から、マニピュレータ3の各軸の位置の指令を受け取る。サーボコントローラ2は、その各軸の位置の指令に応じて、フィードバック制御により各軸のモータに対応するトルク指令値を生成する。マニピュレータ3の各モータは、このトルク指令値によって動作する。なお、このサーボコントローラ2によるフィードバック制御はすでに公知であり、その詳細な説明を省略する。なお、サーボコントローラ2による制御が行われ、またマニピュレータ3が外乱の影響を受けることによって、結果として、マニピュレータ3の先端は、目標ルートまたは目標ルートの近傍を移動することになる。
【0046】
次に、制御装置1の動作について
図6のフローチャートを用いて説明する。
(ステップS101)曲線補間部12は、カウンタiを1に設定する。
【0047】
(ステップS102)曲線補間部12は、教示情報記憶部11で記憶されている教示情報に含まれるi番目の経由教示点について、曲線補間を行う。すなわち、そのi番目の経由教示点と、直前の教示点との間の曲線補間開始点から、そのi番目の経由教示点と、直後の教示点との間の曲線補間終了点までの間を曲線補間する。この曲線補間の処理は、曲線軌道を示す式を生成し、教示情報記憶部11に蓄積することであってもよい。
【0048】
(ステップS103)曲線補間部12は、カウンタiを1だけインクリメントする。
【0049】
(ステップS104)曲線補間部12は、教示情報記憶部11で記憶されている教示情報にi番目の経由教示点が含まれるかどうか判断する。そして、i番目の経由教示点が含まれる場合には、ステップS102に戻り、含まれない場合、すなわち、教示情報に含まれるすべての経由教示点について曲線補間が行われた場合には、ステップS105に進む。
【0050】
(ステップS105)軌道制御部13は、各目標ルートにおける目標セクションごとに、セクション目標時間を算出する。この算出されたセクション目標時間は、教示情報記憶部11で記憶されてもよい。
【0051】
(ステップS106)軌道制御部13は、曲線補間後の曲線補間教示ルートと、各教示セクションに対応するセクション目標時間とを用いて、補間周期ごとにマニピュレータ3の先端の位置を特定し、その特定した位置に逆キネマティクス処理を行うことによって、マニピュレータ3の各軸の位置を算出する。そして、軌道制御部13は、その補間周期ごとに各軸の位置を示す位置指令値をサーボコントローラ2に出力する。その結果、マニピュレータ3は、サーボコントローラ2による制御によって、各目標ルートを移動する。また、各目標ルートの移動時間は、あらかじめ設定された目標時間となる。
【0052】
なお、
図6のフローチャートでは、軌道の制御の直前にセクション目標時間を算出する場合について説明したが、そうでなくてもよい。曲線補間を行わなくてもセクション目標時間を算出できる場合には、曲線補間の前にセクション目標時間を算出してもよい。また、目標ルート上で補間を行い、その補間周期ごとの位置を曲線補間教示ルート上の位置に変換する場合には、セクション目標時間を算出する必要がないため、ステップS105の処理を行わなくてもよく、ステップS106において、そのセクション目標時間を用いた軌道の制御を行わなくてもよい。
【0053】
次に、本実施の形態による制御装置1の動作について、具体例を用いて説明する。この具体例において、軌道制御部13が、目標ルートにおいて補間を行い、その補間周期ごとの目標ルート上の位置を曲線補間教示ルート上の位置に変換することによって、制御を行う場合について説明する。すなわち、セクション目標時間の算出(ステップS105)は行わないものとする。また、教示情報記憶部11では、次の教示情報が記憶されているものとする。
Position(1)、Time(1)
Position(1−1)
Position(1−2)
Position(1−3)
Position(2)、Time(2)
Position(2−1)
Position(2−2)
Position(2−3)
Position(2−4)
Position(3)、Time(3)
Position(3−1)
:
:
【0054】
この教示情報において、Position(F)は、目標ルートの端点におけるマニピュレータ3の先端の位置を示す情報である。すなわち、Position(F)は、開始教示点及び/または目標教示点である。例えば、Position(2)は、Position(1)からPosition(2)までの目標ルートについては目標教示点となり、Position(2)からPosition(3)までの目標ルートについては開始教示点となる。なお、Fは1以上の整数である。また、Position(F−E)は、Position(F)からPosition(F+1)までの間の経由教示点である。なお、Eは1以上の整数である。また、Time(F)は、教示点Position(F)からPosition(F+1)までの目標ルートに対応する目標時間である。例えば、マニピュレータ3の先端は、Position(1)からPosition(2)までを、目標時間Time(1)で移動するように制御される。また、この具体例では、曲線補間は、2次ベジェ曲線による補間であるとする。また、この具体例では、目標ルート及び曲線補間教示ルートが、前述の(3)のようにセクションに分割されるものとする。すなわち、例えば、
図4Cで示されるように目標セクションや教示セクションが設定されるものとする。また、前述のm、rは、すべての経由教示点について共通であり、それらの値は、軌道制御部13がアクセス可能な図示しない記録媒体で記憶されているものとする。
【0055】
まず、曲線補間部12は、1番目の経由教示点であるPosition(1−1)について、曲線補間を行う(ステップS101,S102)。具体的には、Position(1)とPosition(1−1)との間の曲線補間開始点M
1'から、Position(1−1)とPosition(1−2)との間の曲線補間終了点R
1'までの教示セクションts(2)に対応する式(2)を教示情報記憶部11に蓄積する。なお、曲線補間部12は、そのような曲線補間を、経由教示点Position(1−2)、Position(1−3)についても行い、さらに、経由教示点Position(2−1)以降についても行う(ステップS102〜S104)。
【0056】
その後、軌道制御部13は、曲線補間後の曲線補間教示ルートを用いて、補間周期ごとにマニピュレータ3の先端の位置を特定し、その特定した位置に逆キネマティクス処理を行うことによって、マニピュレータ3の各軸の位置を算出し、その各軸の位置を示す位置指令値をサーボコントローラ2に出力する(ステップS106)。具体的には、軌道制御部13は、まず、Position(1)からPosition(2)までの目標ルートについて、その目標ルートに対応する目標時間Time(1)を用いた補間を行う。そして、軌道制御部13は、その補間位置のうち、目標セクションgs(1)における各補間位置を、その目標セクションgs(1)に対応する教示セクションts(1)上の点に変換する。具体的には、軌道制御部13は、各補間位置に対応する式(4)のtの値を算出し、そのtの値を式(3)に代入することにより、各補間位置に対応する教示セクションts(1)上の点を求める。次に、軌道制御部13は、目標セクションgs(2)における各補間位置を、その目標セクションgs(2)に対応する教示セクションts(2)上の点に変換する。この場合には、教示セクションts(2)が曲線軌道であるため、軌道制御部13は、あらかじめ蓄積しておいた教示セクションts(2)に対応する式(2)を読み出し、各補間位置に対応する式(1)の値を算出し、そのtの値を式(2)に代入することにより、各補間位置に対応する教示セクションts(2)上の点を求める。このような処理を繰り返すことによって、軌道制御部13は、曲線補間教示ルート上の各教示セクション上の位置を特定することができ、その位置が補間周期ごとのマニピュレータ3の先端の位置となる。その後、軌道制御部13は、補間周期ごとの曲線補間教示ルート上の位置から、各軸の位置を算出し、それらの位置指令値をサーボコントローラ2に出力することによって、マニピュレータ3の先端が曲線補間教示ルート上を移動するように制御する。なお、このように制御することによって、結果として、マニピュレータ3の先端が、セクション目標時間で、そのセクション目標時間に対応する教示セクションを移動するように制御され、それに外乱が加わることによって、マニピュレータ3の先端が目標ルートを移動することになるのは前述の通りである。
【0057】
なお、この具体例では、目標ルート上の補間位置を曲線補間教示ルート上の位置に変換することによって、マニピュレータ3の先端が、セクション目標時間で教示セクションを移動するように制御する場合について説明したが、前述のように、教示セクションごとに、セクション目標時間で移動するように補間を行ってもよいことは言うまでもない。
【0058】
以上のように、本実施の形態による制御装置1によれば、マニピュレータ3の先端が曲線補間教示ルートを移動する場合であっても、あらかじめ決められた目標時間でマニピュレータ3が開始教示点から目標教示点までを移動するように制御できる。その結果、目標ルートよりも移動距離が長い曲線補間教示ルートを移動する場合であっても、開始教示点から目標教示点までの移動に遅れが発生することがなく、タクトタイムが長くなることを防止することができる。また、マニピュレータ3の先端が曲線補間教示ルートを移動する場合であっても、開始教示点から目標教示点までの移動の時間である目標時間を用いて移動制御を行うことができ、その移動制御が容易になる。さらに、本実施の形態では、マニピュレータ3の先端が曲線補間教示ルートを移動するように制御するため、そのルート上において移動方向が急激に変化しないようにすることができる。その結果、速度変化を滑らかにすることができ、搬送対象や機械本体の破損を防止することができる。また、曲線補間の際に、2次ベジェ曲線のようなパラメトリック曲線を用いることによって、目標ルート上の点と、曲線補間教示ルート上の点との対応が明確になり、一方のルート上の点から、その点に対応する他方のルート上の点を特定する計算が簡単になる。
【0059】
なお、本実施の形態では、曲線軌道の式やセクション目標時間が教示情報記憶部11に蓄積される場合について説明したが、そうでなくてもよい。それらの情報は、他の図示しない記録媒体に蓄積されてもよい。その場合には、軌道制御部13は、その図示しない記録媒体から曲線軌道の式等を読み出して用いるものとする。
【0060】
また、本実施の形態による制御装置1を含む産業用ロボットの種類を問わないことは言うまでもない。例えば、産業用ロボットは、円筒座標ロボットであってもよい。その場合であっても、デカルト座標系における射影変換に加えて、関節軸で表す空間上で上述した処理と同様の処理を行ってもよい。
【0061】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【0062】
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、あるいは、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
【0063】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いるしきい値や数式、アドレス、設定値等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
【0064】
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いるしきい値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、あるいは、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
【0065】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、そのプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0066】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。