干渉チェック制御装置および干渉チェック制御方法
【課題】制動動作中におけるロボットの構成部分同士の干渉の有無を高精度に判定する。
【解決手段】動作領域に重複部分を有するロボット同士の干渉チェック制御装置であって、速度・位置記憶手段910と、干渉判定領域の閾値をあらかじめ記憶する干渉判定用閾値記憶手段918と、速度・位置データに基づいて制動開始から停止までに必要な時間を計算する制動時間計算手段911と、制動開始から制動完了までの各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定手段916と、各構成部分間の最近接距離の履歴と干渉判定領域の閾値とを比較し、制動期間中の干渉の有無を判定する干渉判定手段917と、干渉判定結果に応じて各ロボットに対する移動指令値を作り出すとともに、ロボットの速度・位置データを速度・位置記憶手段に記憶させる指令値生成手段919とを備える。
【解決手段】動作領域に重複部分を有するロボット同士の干渉チェック制御装置であって、速度・位置記憶手段910と、干渉判定領域の閾値をあらかじめ記憶する干渉判定用閾値記憶手段918と、速度・位置データに基づいて制動開始から停止までに必要な時間を計算する制動時間計算手段911と、制動開始から制動完了までの各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定手段916と、各構成部分間の最近接距離の履歴と干渉判定領域の閾値とを比較し、制動期間中の干渉の有無を判定する干渉判定手段917と、干渉判定結果に応じて各ロボットに対する移動指令値を作り出すとともに、ロボットの速度・位置データを速度・位置記憶手段に記憶させる指令値生成手段919とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、近接配置され動作領域が重複している複数のロボットの干渉チェック制御装置および干渉チェック制御方法に関する。
【背景技術】
【0002】
少なくとも2台以上のロボットの動作領域が重なる状態で同時に作業するロボットシステムにおいて、ロボット同士の干渉チェックを行なう技術が開示されている。一般に、ロボットをいくつかの構成部分に分け、ロボット構成部分を覆うように例えば円筒と半球を用いた近似立体でロボット構成部分をモデル化して、これら近似立体間の距離を計算することから衝突を検知する方法(特許文献1参照)が行われており、例えばロボットを単純な線分でモデル化してその線分間の最近接距離を計算し干渉状態をチェックする方法が行われている。
【0003】
前記のような干渉チェック方法を用いて各ロボット同士が干渉しないよう停止する技術として、例えば、エンドエフェクタなどの取り付けてある手先部分であるロボットのツールの周りに該ロボットのツールの大きさよりも大きい2重の干渉判定領域を設けてその干渉状態と各ロボット同士の相対的な移動方向の関係にあわせて、片方を停止させるか両方を停止させるか決定する方法(特許文献2参照)がある。また、干渉回避のために停止動作を開始した際の停止完了時の姿勢を計算し、その姿勢に対して各ロボット同士の干渉の有無を判定して、停止完了時の姿勢に対して各ロボット同士の干渉があれば停止必要と判断し停止を開始する方法(特許文献3参照)という先行技術がある。
【0004】
【特許文献1】特開60-217410号公報
【特許文献2】特許第3351330号公報
【特許文献3】特許第3907649号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術には、以下のような課題がある。
ロボットの手先軌道が教示軌道に沿って、例えば直線や円弧を描く際には、各ロボット構成部分は、単調動作ではなく複雑に動く場合がある。あるロボット構成部分と他ロボット構成部分が相対的に近づいたり離れたりする動きに該当する。ロボット同士が近接配置され動作領域が重複する際には、該ロボット構成部分の複雑な動作によって各ロボット構成部分同士が干渉する危険性があるというのは大きな問題であり、従来方法ではそのようなロボット構成部分間の干渉チェックができていなかった。
【0006】
従来方法は、例えば、特許文献2ではロボットのツールに限定されており構成部分同士の距離判定を行なっていないためツール部分同士は干渉していなくてもその停止動作中に別の構成部分同士が干渉する可能性があった。特許文献3では、ロボット制御指令を作る制御計算周期ごとに干渉チェックをする時に、ある時刻で計算されたロボット停止位置と、1制御周期分だけ次の時刻に計算された停止位置の停止位置間隔が、特に高速動作時に大きくなってしまうため、干渉チェックを行なう隣り合った停止位置間においてはロボット構成部分同士が干渉している可能性を判定できない。
【0007】
本発明は、前記のような課題を解決するためになされたものであり、制動動作中におけるロボットの構成部分同士の干渉の有無を高精度に判定することのできる干渉チェック制御装置および干渉チェック制御方法を得ることを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る干渉チェック制御装置は、それぞれの動作領域に重複する部分を有するロボット同士の干渉チェック制御装置であって、計算周期ごとに算出されたロボットの速度・位置データを記憶する速度・位置記憶手段と、各ロボット間の干渉判定を行なうための干渉判定領域の閾値をあらかじめ記憶する干渉判定用閾値記憶手段と、速度・位置記憶手段に記憶された速度・位置データに基づいて、ロボットが現時点から制動を開始した際に完全に停止するまでに必要な時間を計算する制動時間計算手段と、制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定手段と、推定された各構成部分間の最近接距離の履歴と、干渉判定用閾値記憶手段にあらかじめ記憶された干渉判定領域の閾値とを比較し、制動開始から制動完了までの間の干渉の有無を判定する干渉判定手段と、干渉判定手段による干渉判定結果に応じて、計算周期ごとに各ロボットに対する移動指令値を作り出すとともに、現在の計算周期におけるロボットの速度・位置データを速度・位置記憶手段に記憶させる指令値生成手段とを備えるものである。
【0009】
本発明に係る干渉チェック制御方法は、それぞれの動作領域に重複する部分を有するロボット同士の干渉チェック制御方法であって、第1の記憶部に記憶された速度・位置データに基づいて、ロボットが現時点から制動を開始した際に完全に停止するまでに必要な時間を計算する制動時間計算ステップと、制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定ステップと、推定された各構成部分間の最近接距離の履歴と、第2の記憶部にあらかじめ記憶された干渉判定領域の閾値とを比較し、制動開始から制動完了までの間の干渉の有無を判定する干渉判定ステップと、干渉判定ステップによる干渉判定結果に応じて、計算周期ごとに各ロボットに対する移動指令値を作り出すとともに、現在の計算周期におけるロボットの速度・位置データを第1の記憶部に記憶させる指令値生成ステップとを備えるものである。
【発明の効果】
【0010】
本発明に係る干渉チェック制御装置および干渉チェック制御方法によれば、制動開始から制動完了までの間の構成部分同士の最近接距離の変化を、接近する各構成部分の速度に基づいて推定することにより、制動動作中におけるロボットの構成部分同士の干渉の有無を高精度に判定することのできる干渉チェック制御装置および干渉チェック制御方法を得ることができる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の干渉チェック制御装置および干渉チェック制御方法の好適な実施の形態につき図面を用いて説明する。
本発明は、制動開始から制動完了までにロボット構成部分同士の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定し、制動開始から制動完了までにロボット同士の干渉があるか否かを、ロボット構成部分ごとの最近接距離の変化の推定結果に基づいて判定している。この結果、制動動作中に構成部分同士が干渉するケースを見落とすことがなくなり、近接配置され動作領域が重複するロボット間の干渉問題において、従来方法よりももれなく干渉状態を発見し、ロボットの破損などを防ぐ効果がある。
【0012】
また、以下の説明中での制動とは、停止をするために各可動部分の駆動源に減速指令をかけて、現在速度と出力可能な減速のための加速度によって規定される時間後に停止する動作のことである。
【0013】
実施の形態1.
図1は、本発明の実施の形態1における干渉チェック制御装置の構成図である。この図1の干渉チェック制御装置は、ロボット速度・位置記憶手段910、制動時間計算手段911、ロボット間距離推定手段916、干渉判定手段917、干渉判定用閾値記憶手段918、および指令値生成手段919を備えている。
【0014】
各構成要件を説明する前に、本実施の形態1において行われる干渉チェックについて説明する。まず、ロボットの可動範囲によって形成される、ロボットが通過しうる空間を動作領域と表現する。2台以上のロボット同士で動作領域が交差する場合は、ロボット同士の衝突の危険性が出てくる。このようなロボット同士の衝突を表す表現として、ロボットの占めている空間同士が交差している状態に干渉という表現を用いる。そのほか、後述の干渉判定領域同士が交差する状態にも干渉という表現を用いる。また、このような干渉が生じるかどうかを確認することを干渉チェックと呼ぶ。図2は、本発明の実施の形態1において干渉チェックを行なうロボットシステムの構成例を表す図である。この図2で表されるようなロボットシステムにおいて、各ロボットのロボット制御装置のそれぞれに含まれている干渉チェック制御装置3A、3Bは、計算周期毎にロボット同士の干渉チェックを行なう。
【0015】
また、干渉チェック制御装置3A、3Bによって、2台それぞれのロボットの位置と速度情報が通信されることで、情報が共有化されている。この情報は、それぞれの干渉チェック制御装置3A、3Bによって計算され、例えば、Ethernet(登録商標)やRS232Cによって通信がおこなわれ、共有化される。
【0016】
ロボット間の干渉チェックを行なう際には、接近状態を表す指標として、ロボット間の距離情報を計算する必要がある。そこで、本実施の形態1では、ロボット構成部分ごとに線分でモデル化して、線分同士の距離計算を行なうことで、ロボット間距離を求めている。
【0017】
図3は、本発明の実施の形態1におけるロボットの線分モデルの例示図である。それぞれの構成部分が、線分20の集合として表される。また、その際に、ロボット構成部分モデルに対して付加されている添字iとjは、ロボット構成部分を根元から1、2、・・・と数えたときの通し番号とする。
【0018】
本実施の形態1において、ロボット動作を制御するロボット制御装置は、通常、計算周期毎に指令値生成手段919により生成される指令に基づいて、ロボットを制御する。ここで、ロボット動作を制御するために生成されるロボットの指令値とは、例えば、ある開始点と目標点を与えたときに、ロボットのエンドエフェクタが直線的な軌道を描いて開始点から目標点に対して移動するようにロボットに備えられたモータなど各駆動源の、現在時刻における目標値を決定することを指す。
【0019】
本発明では、その計算周期で行なわれる指令値計算をするたびに干渉判定を行なう。そのために、図1に示すように、制動時間計算手段911は、現在のロボットの位置と姿勢を含む位置情報901、および現在のロボットの動作速度を含む速度情報902を、ロボット速度・位置記憶手段910から読み込み、現時点から制動を開始したときのロボットの制動時間tstpを計算する。
【0020】
次に、ロボット間距離推定手段916は、制動時間tstp903を制動時間計算手段911から読み込み、制動開始から制動完了までのロボット同士の各構成部分間の距離を推定計算する。より具体的には、ロボット間距離推定手段916は、制動開始から制動完了までに渡り、2台のロボットについて1つずつ選んだロボット構成部分LinkiとLinkjのロボットモデル間の距離Lijを、全ての組合せについて推定計算する。
【0021】
次に、干渉判定手段917は、ロボット間距離推定手段916により推定計算されたロボットモデル間距離Lijが、制動開始から制動完了までの間、干渉をしないための許容値に収まるか否かを比較する。そして、指令値生成手段919は、干渉判定手段917による比較判定結果を反映した指令値を生成し、ロボット間の干渉を防止する。
【0022】
なお、ここで、ロボット構成部分とは、ロボットが複数の可動部からなっている場合における、干渉判定を行なうために定義したロボットを構成する一部分のことである。例えば、ロボットごとに見ると、リスト部、アーム部、ベース部といったものが、このロボット構成部分に相当する。
【0023】
次に、先の図1に示した本実施の形態1における各構成要素について、順に、詳細に説明する。
ロボット速度・位置記憶手段910は、少なくとも1ステップ前の計算ステップまでに、指令値生成手段で生成された、ロボットの位置や速度に関する情報900を記憶しておく記憶手段である。
【0024】
制動時間計算手段911は、ロボット速度・位置記憶手段910から位置情報901、速度情報902を取得し、ロボットが制動開始した際に完全に停止するまでに必要な時間を計算する。
【0025】
ここで、位置情報901は、ロボットの位置に関する情報であり、例えば、関節角度、エンドエフェクタの位置姿勢およびロボットを構成するロボット構成部分モデル間の距離計算をするのに必要なロボット構成部分の端点位置情報に相当する。また、速度情報902は、それぞれロボットの位置に関する情報の前回計算ステップと今回計算ステップとの差分によって求められる速度に関する情報に相当する。また、ロボットの関節角度情報からエンドエフェクタの位置姿勢および定義されたロボット構成部分の端点位置情報は、運動学計算によって計算できるので、単に位置情報901を関節角度情報とすることもできる。また、ロボットの関節角速度情報を用いて運動学を計算することでも、ロボットの速度に関する情報を計算することができる。
【0026】
なお、ここでの計算ステップとは、所定の制御周期ごとに行なわれ、ロボットを動作させるための1制御周期分の指令計算を行なうための一連の計算過程の集合を意味する。これは、例えば、図1に示すような一連の計算群を1回分処理する過程に相当する。
【0027】
制動時間計算手段911は、例えば、ロボットの指令生成の方法として、各関節角度目標値に向かって追従していく関節補間指令中であったときには、減速停止するための各ロボット構成部分の可動部の各加速度に応じて制動時間tstpを決定する。例えば、添字mを関節番号(m=1、2、・・・)とするとき、現在の関節角速度vnowmで停止のための各関節によって大きさの異なる加速度astpmが関節毎では一定値である場合には、各関節の制動時間tstpmは、下式(1)となる。
tstpm=|vnowm/astpm| (1)
【0028】
制動時間計算手段911は、それぞれの関節mについて制動開始から制動完了までに必要な時間tstpmを計算でき、さらに、そのtstpmの中から最も大きなtstpmを求め、これをtstpとおくことができる。この際、制動時間計算手段911は、tstpに応じたそれぞれの関節の新たな加速度astpmを、制動時間tstpが経過したと同時に停止をするように、tstpm=tstpとして、上式(1)を用いて、再計算する。また、複数のロボットが存在する場合には、それぞれのtstpで最も大きなtstpを全体のtstpとして選び、各ロボットの制動時間をtstpm=tstpとして、上式(1)を用いて、再計算する。
【0029】
次に、現在時刻tnowから制動を開始した場合に、制動時間tstpの間にロボット同士が干渉しないことを保証する必要がある。そこで、次に、ロボット同士が制動時間tstpの間に干渉がないことを保証するための干渉チェック方法について述べる。
【0030】
その準備として、まず、ロボットのモデル化について説明する。
ロボットは、例えば、先の図3に示したように、線分20でモデル化され、ロボット同士の干渉チェックを行なうために、ロボットを表す線分同士の距離計算が行なわれる。
【0031】
図4は、本発明の実施の形態1におけるモデル化された2線分間の最近接点を幾何的に表した図である。例えば、ロボットモデル間距離を計測するための2つの線分をモデルLinkiとLinkjとすると、この2線分間の最近接点31、32(41、42)からモデル間距離Lij33(43)が導かれる。最近接点の計算方法は、例えば、特許文献1に開示されているような手法を用いることができる。
【0032】
そして、ロボットが干渉するか否かの判定は、ロボットを十分に包む円筒と半球とからなるロボット構成部分間の干渉判定領域を使って行われる。図5は、本発明の実施の形態1における干渉判定領域の説明図である。図5に示すように、線分モデルから距離rという大きさでロボットを円筒および半球で包み、これをロボット干渉判定領域と定義する。そして、干渉判定領域同士が干渉する場合に、ロボット同士が干渉すると判定する。
【0033】
例えば、干渉判定領域の大きさが、全てrであるとき(すなわち、図5において、線分21からの距離がrであるとして規定される干渉判定領域の場合)、現在時刻tnowから制動時間tstpが経過するまでの間、モデル間距離Lijに対して下式(2)が成り立っている場合には、干渉がないものとする。
2r≦Lij(t) (tnow≦t≦tnow+tstp) (2)
【0034】
なお、距離を計算するのに用いるモデルは、線分だけでなく、ポリゴンモデルや詳細なCADモデルを利用することもできるが、ここでは、簡単のため、線分を取り扱っている。このようなモデル化されたロボット同士が干渉しないように制御を行なえば、実際のロボットも干渉しないことになる。
【0035】
上述したような、モデル化されたロボット構成部分間の干渉チェック方法を踏まえ、ロボットが現在時刻tnowから制動完了時刻tnow+tstpまでに干渉を起こすか否かを確認する必要がある。従来技術では、解決すべき課題で述べたように、ロボットが動作中に制動をかけた場合に、全ロボット構成部分が制動完了するまでの間に干渉するか否かをチェックできていない場合があった。
【0036】
そこで、本発明では、ロボット間の干渉を見るときに、それぞれのロボットのLinkのすべての組み合わせについて、干渉チェックを行っている。図6は、本発明の実施の形態1における2つのロボット間の干渉チェック方法の説明図である。この図6の例では、第1のロボットであるロボットAと第2のロボットであるロボットBは、それぞれ4つのLinkで構成されている。
【0037】
そして、ロボットAとロボットBとの干渉を見る際には、ロボットAのLink1A〜Link4Aと、ロボットBのLink1B〜Link4Bとのすべての組み合わせについて、干渉チェックを行なう。ただし、衝突危険性のないLink間(例えば、図6におけるLink1AとLink1B)は、干渉チェックを省略することができる。
【0038】
さらに、図6では、干渉判定領域サイズがL3ALimの大きさを持つLink3Aと、干渉判定領域サイズがL3BLimの大きさをもつLink3Bとの最近接距離について比較を行っている例を示している。干渉危険性のあるロボット構成部分同士の距離Lij(先の図4における33に相当)の変化に注目して、これが干渉しないかどうかを次のように判定する。
【0039】
各符号を次のように定義する。
Linki :ロボットAのロボット構成部分モデル(i=1,2、3、4)
Linkj :ロボットBのロボット構成部分モデル(j=1,2、3、4)
Lij :LinkiとLinkjの距離
LiLim、LjLim :干渉判定領域となるロボット構成部分モデルごとの線分モデ
ルからの距離
この場合、ロボットAのLinkiと、ロボットBのLinkjとの間の干渉判定領域の大きさLijLimは、下式(3)となる。
LijLim=LiLim+LjLim (3)
【0040】
そこで、上式で規定されるLijLimを干渉判定用の閾値として用いることで、下式(4)の不等式を満たさない場合に、干渉が起こると判断できる。
LijLim≦Lij (4)
【0041】
現在時刻から制動を開始した際に、停止までのロボット構成部分モデル間距離の変化曲線Lij(t)が、LijLimに1度でも達するか否かを推定し、曲線Lij(t)がLijLimに達することがなければ、干渉がないと判定可能である。そこで、次に、ロボット構成部分モデル間距離Lijの推定方法について説明する。
【0042】
まず、2つのロボット構成部分モデル間の接近について考える。モデル間距離は、上述したように、ロボット構成部分モデル間の最近接距離Lijで定義される。従って、ロボット構成部分モデル間の最近接距離Lijの履歴Lij(t)をたどることができれば、正確な干渉チェックが可能である。しかしながら、制動開始から停止までの距離変化を全時間に渡って計算することは、多大な計算負荷がかかることとなる。このため、例えば、実時間で干渉を推定して停止などを考えるときには、全時間に渡って計算することは、計算負荷の観点から現実的ではない。
【0043】
また、ロボット構成部分間の最近接点は、時々刻々と位置が変化する。このため、有限の最近接距離の履歴Lij(t)から、全時間に渡って最近接点の位置変化を加味してLij(t)を正確に推定することは、困難である。
【0044】
そこで、本発明では、Lijの推定には、Lijの接近速度値L(・)ijを考慮して、次のように行っている。ただし、(・)は、()の前の距離を表す記号の上部に・が付いた速度値を意味している。Lijの接近速度値L(・)ijに関し、最近接点の位置変化分で干渉見落としが発生しないように、2線分の接近に関して接近速度値の上限値L(・)ijLimが定義できる。このことから、L(・)ijLimの積分値をこれまでのLijに足しこむ方法で、制動開始から制動完了までのLij(t)の接近上限値を推定することができる。
【0045】
ここで、接近速度についての上限値L(・)ijLimの定義について以下に示す。図7は、本発明の実施の形態1における最近接位置における速度よりもリンク端における速度が速度値として大きいことを表す説明図である。図7に示すように、2つのロボット構成部分の線分モデルLinkiとLinkjそれぞれの最近接点付近の速度Vicls、VjclsとLijの微分値にあたる接近速度値L(・)ijの関係は、2つの線分モデルの最近接方向ベクトルをNijclsとするとき、下式(5)で表される。
L(・)ij=Nijcls(Vicls−Vjcls) (5)
【0046】
また、Linkiの最近接点付近の速度Viclsは、Linkiの端点速度Viedg01とViedg02のどちらかの端点速度(図7中の符号61、63、64参照)よりも必ず遅い。このため、接近方向に対して大きい方の端点速度を、上限値Viedgとすることができる。上限値Viedgを用いた場合には、L(・)ijを知る目的でロボット構成部分モデル線分上にある最近接点および最近接距離Lij計算をする必要がないため、計算負荷が少なくてすむ。端点速度から導かれる上限値L(・)ijdに基づいて、制動時間tstp経過するまでのLijを推定した場合、干渉は起こらない。
【0047】
以上を踏まえて、制動時間tstpが経過するまでのロボットモデル間距離Lijを推定する際には、次のように行なう。制動開始から制動完了までのL(・)ijをプロットすることは、計算負荷となる。そこで、ここでは、推定のための有限なn個の2つの線分モデルのリンク端速度情報(63、64)を参照情報として得て、それを元にLijの推定を行なう。
【0048】
図8は、本発明の実施の形態1におけるLijを推定するロボット間距離推定手段916の内部構成図である。図8におけるロボット間距離推定手段916は、サンプリング時間決定手段912、ロボット位置計算手段913、端点速度計算手段914、およびロボット間距離推定値計算手段915で構成される。
【0049】
サンプリング時間決定手段912は、この参照情報を得る時刻を決定する。サンプリング時間決定手段912は、ロボットが軌道通りに進んで停止するとして、制動を開始してから停止するまでの制動時間tstp(903)をn分割(nは自然数)することで、サンプリングする時間tsmpk(904)を、例えば、下式(6)として決定する。
tsmpk=tnow+tstp*k/n(k=1、2、・・・n−1) (6)
【0050】
ここで、添字kについては、サンプリング時間の通し番号とする。次に、サンプリングする時間tsmpkの各時刻において、ロボット位置計算手段913は、ロボット構成部分の端点位置(905)を計算する。また、ロボット位置計算手段913は、1計算周期にかかる時間をdtとした場合、dt後の時刻(tsmpk+dt)におけるロボット構成部分の端点位置(905)も、同様に計算しておく。
【0051】
リンク端速度情報(図7における63、64参照)を計算する方法として、ここでは、例えば、ロボット構成部分モデルにおける2つの端点(以下の説明では、edg01とedg02で区別する)の時刻tsmpkにおける位置pedg01(tsmpk)とpedg02(tsmpk)、時刻tsmpk+dtにおけるpedg02(tsmpk+dt)とpedg02(tsmpk+dt)の差分から計算する方法をとる。
【0052】
これによって、端点速度計算手段914は、サンプリングする時刻tsmpk(k=1、2、・・・、n−1)における各ロボット構成部分の端点速度Viedg01(tsmpk)、Viedg02(tsmpk)、Vjedg01(tsmpk)、Vjedg02(tsmpk)(906)を得ることができる。
【0053】
この後、Lijの推定値を計算するロボット間距離推定値計算手段915は、上述したように、Linkiの最近接点付近の速度ViclsがLinkiの端点速度Viedg01とViedg02のどちらかの端点速度(63,64)よりも必ず遅いため、接近方向に対して大きい方の端点速度を上限値Viedgとすることができる。ここでは、この上限値Viedgを構成部分の速度上限値としている。
【0054】
2つの端点速度について、それぞれtsmpkにおけるViedg (tsmpk)、Vjedg(tsmpk)が分かっているので、上限値L(・)ijd(502)は、最近接方向ベクトルをNijclsとして、下式(7)という形で求められる。
L(・)ijd=Nijcls・(Viedg(tsmpk)−Vjedg(tsmpk)) (7)
【0055】
ここで得られる端点ごとの2つのL(・)ijdのうち、接近方向に対してより大きい方を上限値L(・)ijdと定める。また、ここでは、簡単の為に、n=3としてサンプリングし、各サンプリング間を台形近似してΔLijdを計算する。図9は、本発明の実施の形態1におけるロボット構成部分の端点速度を用いて最近接点間距離を計算する場合の、速度値から距離を計算するための台形近似を表す説明図である。
【0056】
この図9に示すような台形近似により、下式(8)を用いることで、サンプリング時刻ごとにおける推定値Lijdを得る。
Lijd=Lij(tnow)+ΔLijd (8)
【0057】
干渉判定手段917は、干渉判定を行なうための干渉判定領域の閾値をあらかじめ記憶している干渉判定用閾値記憶手段918から、チェック対象としているロボット構成部分モデルの干渉判定領域の大きさから定義される干渉判定の閾値LijLim908を読み出す。そして、干渉判定手段917は、上述した推定方法を利用してロボット間距離推定手段916で求められるロボット間距離の推定値Lijd907と、読み出した干渉判定の閾値LijLim908との比較を、下式(9)により行ない、サンプリング時刻ごとに干渉判定する。
LijLim≦Lijd (9)
【0058】
上式(9)の条件を満たす場合には、干渉判定手段917は、干渉は起こらないと判定して指令値生成手段919にその旨を伝達する(909)。この場合は、移動指令値としてロボット制御装置内で追従する目標値に向かう移動指令が生成される。一方、上式(9)の条件を満たさない場合には、干渉判定手段917は、干渉の危険性があると判定して、移動指令値として停止を開始するための指令変更の伝達(909)を指令値生成手段919に対して行なう。
【0059】
図10は、本発明の実施の形態1において、推定結果に基づく干渉判定手段917により干渉の危険性があると判定された場合に減速開始を行なう説明図である。この図10に示すように、判定を行なう現在時刻tnow201における推定結果に基づいて、干渉すると判定されるリミット(601)に達した際に干渉の危険性があると判定いた場合には、干渉判定手段917は、減速停止を開始するための指令変更の伝達(909)を指令値生成手段919に対して行なう。
【0060】
以上のように、実施の形態1によれば、制動開始から制動完了までの間の構成部分同士の距離の変化について、速度上限値に基づいて最近接距離の変化の推定を行っている。そして、ロボット構成部分ごとの距離の変化の推定結果に基づいて、制動開始から制動完了までの間にロボット同士の干渉がないかどうかを判定している。この結果、制動動作中に構成部分同士が干渉するケースを見落とすことがなくなり、近接配置され動作領域が重複するロボット間の干渉問題において、従来方法と比較して、漏れなく干渉状態を発見する効果がある。
【0061】
実施の形態2.
先の実施の形態1におけるロボット間距離推定手段916は、図8に示したように、端点速度計算手段914により求めた各サンプリング時刻における端点速度に基づいて、ロボット間距離の推定を行っていた。これに対して、本実施の形態2は、ロボット間距離の推定を行なうための十分な計算能力を備えている場合に、より高精度な推定を行なう場合について説明する。
【0062】
図11は、本発明の実施の形態2におけるLijを推定するロボット間距離推定手段916aの内部構成図である。図11におけるロボット間距離推定手段916aは、サンプリング時間決定手段912、ロボット位置計算手段913、最近接点・最近速度計算手段914a、およびロボット間距離推定値計算手段915で構成される。
【0063】
図11における最近接点・最近速度計算手段914aは、先の実施の形態1に記載のn個のサンプリングそれぞれに対して最近接距離Lijと最近接点における接近速度Vicls、Vjclsの計算(914)を行ない、上式(5)を計算することでL(・)ijを求める。
【0064】
図12は、本発明の実施の形態2における制動開始から停止までの接近速度変化について、最近接距離をもとにしたものとロボット構成部分の端点速度での比較の一例を表す図である。白丸で示したプロットが、先の実施の形態1におけるロボット間距離推定手段916による推定結果を示しており、黒丸で示したプロットが、本実施の形態2におけるロボット間距離推定手段916aによる推定結果を示している。
【0065】
図12に示すように、実際のロボット構成部分モデル間の最近接距離Lijの時間変化で求められる接近速度L(・)ij(501)を上限値L(・)ijd(502)の代わりに利用することで、実際の停止までの速度変化(511)をより精度よく予測することができる。
【0066】
以上のように、実施の形態2によれば、最近接距離と最近接点における接近速度の計算を行なうことにより、制動開始から実際の停止までの速度変化を、より高精度に予測することができる。
【0067】
実施の形態3.
本実施の形態3は、干渉が発生すると判定され、停止動作を開始した後も、干渉判定を行ない続け、評価式(上式(4)に相当)で干渉がないと判断されれば、動作を再び継続する場合について説明する。
【0068】
図13は、本発明の実施の形態3において、制動開始後に、引き続き干渉チェックを行った際に推定値Lijdが干渉判定領域の閾値LijLimよりも大きくなった場合の継続動作を示す説明図である。あるロボット構成部分同士の距離Lijについて見るときに、停止動作によって見積もった距離Lijは、大きく見積もってしまう場合がある(図13の614参照)。
【0069】
これに対して、本実施の形態3は、現在時刻(201)の干渉判定において干渉の危険性があると判定された場合には減速を行なう。一方で、減速開始後の時刻t' now(202)において干渉の危険性がないと判定された場合には、減速を中止し、動作を継続させる(図13の615参照)。また、それまでに減速を行なっていなければ、軌道通りに動作を継続させるという処理を行なう。
【0070】
以上のように、実施の形態3によれば、停止終了した位置について、特に、特許文献3に示されるようなリアルタイムで動的に計算された停止指令の生成が必要な場合において、停止動作中にも干渉するか否かの判定を行ない、必要に応じて減速をやめることで、ロボットは動作を続けることができる。高速動作時においては、推定誤差も大きくなるため、このように、停止動作中にも干渉するか否かの判定を行なうことで、制動開始時の推定が大きすぎて停止を開始してしまった場合にも、その後の状況に応じて継続動作が可能となる。
【0071】
これにより、従来方法で見落とされていた干渉を見落とさずに判定でき、ロボット同士の干渉が生じないとともに、最適な停止位置まで干渉することなく接近を続けることができる効果がある。
【0072】
なお、本発明は、ロボット同士の場合の干渉チェックに限定されるものではない。一方がロボットであり、他方がモデル化された周辺装置や冶具などを含めた外部環境の場合にも適用可能である。このような外部環境について、あらかじめ形状と位置のデータを登録しておき、ロボットとの相対的な位置関係や動作の相対的な関係の情報が、通信によって共有化できるときに、同様の干渉チェックを適用することができる。
【図面の簡単な説明】
【0073】
【図1】本発明の実施の形態1における干渉チェック制御装置の構成図である。
【図2】本発明の実施の形態1において干渉チェックを行なうロボットシステムの構成例を表す図である。
【図3】本発明の実施の形態1におけるロボットの線分モデルの例示図である。
【図4】本発明の実施の形態1におけるモデル化された2線分間の最近接点を幾何的に表した図である。
【図5】本発明の実施の形態1における干渉判定領域の説明図である。
【図6】本発明の実施の形態1における2つのロボット間の干渉チェック方法の説明図である。
【図7】本発明の実施の形態1における最近接位置における速度よりもリンク端における速度が速度値として大きいことを表す説明図である。
【図8】本発明の実施の形態1におけるLijを推定するロボット間距離推定手段の内部構成図である。
【図9】本発明の実施の形態1におけるロボット構成部分の端点速度を用いて最近接点間距離を計算する場合の、速度値から距離を計算するための台形近似を表す説明図である。
【図10】本発明の実施の形態1において、推定結果に基づく干渉判定手段917により干渉の危険性があると判定された場合に減速開始を行なう説明図である。
【図11】本発明の実施の形態2におけるLijを推定するロボット間距離推定手段916aの内部構成図である。
【図12】本発明の実施の形態2における制動開始から停止までの接近速度変化について、最近接距離をもとにしたものとロボット構成部分の端点速度での比較の一例を表す図である。
【図13】本発明の実施の形態3において、制動開始後に引き続き干渉チェックを行った際に推定値Lijdが干渉判定領域の閾値LijLimよりも大きくなった場合の継続動作を示す説明図である。
【符号の説明】
【0074】
910 ロボット速度・位置記憶手段、911 制動時間計算手段、912 サンプリング時間決定手段、913 ロボット位置計算手段、914 端点速度計算手段、914a 最近接点・最近速度計算手段、915 ロボット間距離推定値計算手段、916、916a ロボット間距離推定手段、917 干渉判定手段、918 干渉判定用閾値記憶手段、919 指令値生成手段。
【技術分野】
【0001】
本発明は、近接配置され動作領域が重複している複数のロボットの干渉チェック制御装置および干渉チェック制御方法に関する。
【背景技術】
【0002】
少なくとも2台以上のロボットの動作領域が重なる状態で同時に作業するロボットシステムにおいて、ロボット同士の干渉チェックを行なう技術が開示されている。一般に、ロボットをいくつかの構成部分に分け、ロボット構成部分を覆うように例えば円筒と半球を用いた近似立体でロボット構成部分をモデル化して、これら近似立体間の距離を計算することから衝突を検知する方法(特許文献1参照)が行われており、例えばロボットを単純な線分でモデル化してその線分間の最近接距離を計算し干渉状態をチェックする方法が行われている。
【0003】
前記のような干渉チェック方法を用いて各ロボット同士が干渉しないよう停止する技術として、例えば、エンドエフェクタなどの取り付けてある手先部分であるロボットのツールの周りに該ロボットのツールの大きさよりも大きい2重の干渉判定領域を設けてその干渉状態と各ロボット同士の相対的な移動方向の関係にあわせて、片方を停止させるか両方を停止させるか決定する方法(特許文献2参照)がある。また、干渉回避のために停止動作を開始した際の停止完了時の姿勢を計算し、その姿勢に対して各ロボット同士の干渉の有無を判定して、停止完了時の姿勢に対して各ロボット同士の干渉があれば停止必要と判断し停止を開始する方法(特許文献3参照)という先行技術がある。
【0004】
【特許文献1】特開60-217410号公報
【特許文献2】特許第3351330号公報
【特許文献3】特許第3907649号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術には、以下のような課題がある。
ロボットの手先軌道が教示軌道に沿って、例えば直線や円弧を描く際には、各ロボット構成部分は、単調動作ではなく複雑に動く場合がある。あるロボット構成部分と他ロボット構成部分が相対的に近づいたり離れたりする動きに該当する。ロボット同士が近接配置され動作領域が重複する際には、該ロボット構成部分の複雑な動作によって各ロボット構成部分同士が干渉する危険性があるというのは大きな問題であり、従来方法ではそのようなロボット構成部分間の干渉チェックができていなかった。
【0006】
従来方法は、例えば、特許文献2ではロボットのツールに限定されており構成部分同士の距離判定を行なっていないためツール部分同士は干渉していなくてもその停止動作中に別の構成部分同士が干渉する可能性があった。特許文献3では、ロボット制御指令を作る制御計算周期ごとに干渉チェックをする時に、ある時刻で計算されたロボット停止位置と、1制御周期分だけ次の時刻に計算された停止位置の停止位置間隔が、特に高速動作時に大きくなってしまうため、干渉チェックを行なう隣り合った停止位置間においてはロボット構成部分同士が干渉している可能性を判定できない。
【0007】
本発明は、前記のような課題を解決するためになされたものであり、制動動作中におけるロボットの構成部分同士の干渉の有無を高精度に判定することのできる干渉チェック制御装置および干渉チェック制御方法を得ることを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る干渉チェック制御装置は、それぞれの動作領域に重複する部分を有するロボット同士の干渉チェック制御装置であって、計算周期ごとに算出されたロボットの速度・位置データを記憶する速度・位置記憶手段と、各ロボット間の干渉判定を行なうための干渉判定領域の閾値をあらかじめ記憶する干渉判定用閾値記憶手段と、速度・位置記憶手段に記憶された速度・位置データに基づいて、ロボットが現時点から制動を開始した際に完全に停止するまでに必要な時間を計算する制動時間計算手段と、制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定手段と、推定された各構成部分間の最近接距離の履歴と、干渉判定用閾値記憶手段にあらかじめ記憶された干渉判定領域の閾値とを比較し、制動開始から制動完了までの間の干渉の有無を判定する干渉判定手段と、干渉判定手段による干渉判定結果に応じて、計算周期ごとに各ロボットに対する移動指令値を作り出すとともに、現在の計算周期におけるロボットの速度・位置データを速度・位置記憶手段に記憶させる指令値生成手段とを備えるものである。
【0009】
本発明に係る干渉チェック制御方法は、それぞれの動作領域に重複する部分を有するロボット同士の干渉チェック制御方法であって、第1の記憶部に記憶された速度・位置データに基づいて、ロボットが現時点から制動を開始した際に完全に停止するまでに必要な時間を計算する制動時間計算ステップと、制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定ステップと、推定された各構成部分間の最近接距離の履歴と、第2の記憶部にあらかじめ記憶された干渉判定領域の閾値とを比較し、制動開始から制動完了までの間の干渉の有無を判定する干渉判定ステップと、干渉判定ステップによる干渉判定結果に応じて、計算周期ごとに各ロボットに対する移動指令値を作り出すとともに、現在の計算周期におけるロボットの速度・位置データを第1の記憶部に記憶させる指令値生成ステップとを備えるものである。
【発明の効果】
【0010】
本発明に係る干渉チェック制御装置および干渉チェック制御方法によれば、制動開始から制動完了までの間の構成部分同士の最近接距離の変化を、接近する各構成部分の速度に基づいて推定することにより、制動動作中におけるロボットの構成部分同士の干渉の有無を高精度に判定することのできる干渉チェック制御装置および干渉チェック制御方法を得ることができる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の干渉チェック制御装置および干渉チェック制御方法の好適な実施の形態につき図面を用いて説明する。
本発明は、制動開始から制動完了までにロボット構成部分同士の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定し、制動開始から制動完了までにロボット同士の干渉があるか否かを、ロボット構成部分ごとの最近接距離の変化の推定結果に基づいて判定している。この結果、制動動作中に構成部分同士が干渉するケースを見落とすことがなくなり、近接配置され動作領域が重複するロボット間の干渉問題において、従来方法よりももれなく干渉状態を発見し、ロボットの破損などを防ぐ効果がある。
【0012】
また、以下の説明中での制動とは、停止をするために各可動部分の駆動源に減速指令をかけて、現在速度と出力可能な減速のための加速度によって規定される時間後に停止する動作のことである。
【0013】
実施の形態1.
図1は、本発明の実施の形態1における干渉チェック制御装置の構成図である。この図1の干渉チェック制御装置は、ロボット速度・位置記憶手段910、制動時間計算手段911、ロボット間距離推定手段916、干渉判定手段917、干渉判定用閾値記憶手段918、および指令値生成手段919を備えている。
【0014】
各構成要件を説明する前に、本実施の形態1において行われる干渉チェックについて説明する。まず、ロボットの可動範囲によって形成される、ロボットが通過しうる空間を動作領域と表現する。2台以上のロボット同士で動作領域が交差する場合は、ロボット同士の衝突の危険性が出てくる。このようなロボット同士の衝突を表す表現として、ロボットの占めている空間同士が交差している状態に干渉という表現を用いる。そのほか、後述の干渉判定領域同士が交差する状態にも干渉という表現を用いる。また、このような干渉が生じるかどうかを確認することを干渉チェックと呼ぶ。図2は、本発明の実施の形態1において干渉チェックを行なうロボットシステムの構成例を表す図である。この図2で表されるようなロボットシステムにおいて、各ロボットのロボット制御装置のそれぞれに含まれている干渉チェック制御装置3A、3Bは、計算周期毎にロボット同士の干渉チェックを行なう。
【0015】
また、干渉チェック制御装置3A、3Bによって、2台それぞれのロボットの位置と速度情報が通信されることで、情報が共有化されている。この情報は、それぞれの干渉チェック制御装置3A、3Bによって計算され、例えば、Ethernet(登録商標)やRS232Cによって通信がおこなわれ、共有化される。
【0016】
ロボット間の干渉チェックを行なう際には、接近状態を表す指標として、ロボット間の距離情報を計算する必要がある。そこで、本実施の形態1では、ロボット構成部分ごとに線分でモデル化して、線分同士の距離計算を行なうことで、ロボット間距離を求めている。
【0017】
図3は、本発明の実施の形態1におけるロボットの線分モデルの例示図である。それぞれの構成部分が、線分20の集合として表される。また、その際に、ロボット構成部分モデルに対して付加されている添字iとjは、ロボット構成部分を根元から1、2、・・・と数えたときの通し番号とする。
【0018】
本実施の形態1において、ロボット動作を制御するロボット制御装置は、通常、計算周期毎に指令値生成手段919により生成される指令に基づいて、ロボットを制御する。ここで、ロボット動作を制御するために生成されるロボットの指令値とは、例えば、ある開始点と目標点を与えたときに、ロボットのエンドエフェクタが直線的な軌道を描いて開始点から目標点に対して移動するようにロボットに備えられたモータなど各駆動源の、現在時刻における目標値を決定することを指す。
【0019】
本発明では、その計算周期で行なわれる指令値計算をするたびに干渉判定を行なう。そのために、図1に示すように、制動時間計算手段911は、現在のロボットの位置と姿勢を含む位置情報901、および現在のロボットの動作速度を含む速度情報902を、ロボット速度・位置記憶手段910から読み込み、現時点から制動を開始したときのロボットの制動時間tstpを計算する。
【0020】
次に、ロボット間距離推定手段916は、制動時間tstp903を制動時間計算手段911から読み込み、制動開始から制動完了までのロボット同士の各構成部分間の距離を推定計算する。より具体的には、ロボット間距離推定手段916は、制動開始から制動完了までに渡り、2台のロボットについて1つずつ選んだロボット構成部分LinkiとLinkjのロボットモデル間の距離Lijを、全ての組合せについて推定計算する。
【0021】
次に、干渉判定手段917は、ロボット間距離推定手段916により推定計算されたロボットモデル間距離Lijが、制動開始から制動完了までの間、干渉をしないための許容値に収まるか否かを比較する。そして、指令値生成手段919は、干渉判定手段917による比較判定結果を反映した指令値を生成し、ロボット間の干渉を防止する。
【0022】
なお、ここで、ロボット構成部分とは、ロボットが複数の可動部からなっている場合における、干渉判定を行なうために定義したロボットを構成する一部分のことである。例えば、ロボットごとに見ると、リスト部、アーム部、ベース部といったものが、このロボット構成部分に相当する。
【0023】
次に、先の図1に示した本実施の形態1における各構成要素について、順に、詳細に説明する。
ロボット速度・位置記憶手段910は、少なくとも1ステップ前の計算ステップまでに、指令値生成手段で生成された、ロボットの位置や速度に関する情報900を記憶しておく記憶手段である。
【0024】
制動時間計算手段911は、ロボット速度・位置記憶手段910から位置情報901、速度情報902を取得し、ロボットが制動開始した際に完全に停止するまでに必要な時間を計算する。
【0025】
ここで、位置情報901は、ロボットの位置に関する情報であり、例えば、関節角度、エンドエフェクタの位置姿勢およびロボットを構成するロボット構成部分モデル間の距離計算をするのに必要なロボット構成部分の端点位置情報に相当する。また、速度情報902は、それぞれロボットの位置に関する情報の前回計算ステップと今回計算ステップとの差分によって求められる速度に関する情報に相当する。また、ロボットの関節角度情報からエンドエフェクタの位置姿勢および定義されたロボット構成部分の端点位置情報は、運動学計算によって計算できるので、単に位置情報901を関節角度情報とすることもできる。また、ロボットの関節角速度情報を用いて運動学を計算することでも、ロボットの速度に関する情報を計算することができる。
【0026】
なお、ここでの計算ステップとは、所定の制御周期ごとに行なわれ、ロボットを動作させるための1制御周期分の指令計算を行なうための一連の計算過程の集合を意味する。これは、例えば、図1に示すような一連の計算群を1回分処理する過程に相当する。
【0027】
制動時間計算手段911は、例えば、ロボットの指令生成の方法として、各関節角度目標値に向かって追従していく関節補間指令中であったときには、減速停止するための各ロボット構成部分の可動部の各加速度に応じて制動時間tstpを決定する。例えば、添字mを関節番号(m=1、2、・・・)とするとき、現在の関節角速度vnowmで停止のための各関節によって大きさの異なる加速度astpmが関節毎では一定値である場合には、各関節の制動時間tstpmは、下式(1)となる。
tstpm=|vnowm/astpm| (1)
【0028】
制動時間計算手段911は、それぞれの関節mについて制動開始から制動完了までに必要な時間tstpmを計算でき、さらに、そのtstpmの中から最も大きなtstpmを求め、これをtstpとおくことができる。この際、制動時間計算手段911は、tstpに応じたそれぞれの関節の新たな加速度astpmを、制動時間tstpが経過したと同時に停止をするように、tstpm=tstpとして、上式(1)を用いて、再計算する。また、複数のロボットが存在する場合には、それぞれのtstpで最も大きなtstpを全体のtstpとして選び、各ロボットの制動時間をtstpm=tstpとして、上式(1)を用いて、再計算する。
【0029】
次に、現在時刻tnowから制動を開始した場合に、制動時間tstpの間にロボット同士が干渉しないことを保証する必要がある。そこで、次に、ロボット同士が制動時間tstpの間に干渉がないことを保証するための干渉チェック方法について述べる。
【0030】
その準備として、まず、ロボットのモデル化について説明する。
ロボットは、例えば、先の図3に示したように、線分20でモデル化され、ロボット同士の干渉チェックを行なうために、ロボットを表す線分同士の距離計算が行なわれる。
【0031】
図4は、本発明の実施の形態1におけるモデル化された2線分間の最近接点を幾何的に表した図である。例えば、ロボットモデル間距離を計測するための2つの線分をモデルLinkiとLinkjとすると、この2線分間の最近接点31、32(41、42)からモデル間距離Lij33(43)が導かれる。最近接点の計算方法は、例えば、特許文献1に開示されているような手法を用いることができる。
【0032】
そして、ロボットが干渉するか否かの判定は、ロボットを十分に包む円筒と半球とからなるロボット構成部分間の干渉判定領域を使って行われる。図5は、本発明の実施の形態1における干渉判定領域の説明図である。図5に示すように、線分モデルから距離rという大きさでロボットを円筒および半球で包み、これをロボット干渉判定領域と定義する。そして、干渉判定領域同士が干渉する場合に、ロボット同士が干渉すると判定する。
【0033】
例えば、干渉判定領域の大きさが、全てrであるとき(すなわち、図5において、線分21からの距離がrであるとして規定される干渉判定領域の場合)、現在時刻tnowから制動時間tstpが経過するまでの間、モデル間距離Lijに対して下式(2)が成り立っている場合には、干渉がないものとする。
2r≦Lij(t) (tnow≦t≦tnow+tstp) (2)
【0034】
なお、距離を計算するのに用いるモデルは、線分だけでなく、ポリゴンモデルや詳細なCADモデルを利用することもできるが、ここでは、簡単のため、線分を取り扱っている。このようなモデル化されたロボット同士が干渉しないように制御を行なえば、実際のロボットも干渉しないことになる。
【0035】
上述したような、モデル化されたロボット構成部分間の干渉チェック方法を踏まえ、ロボットが現在時刻tnowから制動完了時刻tnow+tstpまでに干渉を起こすか否かを確認する必要がある。従来技術では、解決すべき課題で述べたように、ロボットが動作中に制動をかけた場合に、全ロボット構成部分が制動完了するまでの間に干渉するか否かをチェックできていない場合があった。
【0036】
そこで、本発明では、ロボット間の干渉を見るときに、それぞれのロボットのLinkのすべての組み合わせについて、干渉チェックを行っている。図6は、本発明の実施の形態1における2つのロボット間の干渉チェック方法の説明図である。この図6の例では、第1のロボットであるロボットAと第2のロボットであるロボットBは、それぞれ4つのLinkで構成されている。
【0037】
そして、ロボットAとロボットBとの干渉を見る際には、ロボットAのLink1A〜Link4Aと、ロボットBのLink1B〜Link4Bとのすべての組み合わせについて、干渉チェックを行なう。ただし、衝突危険性のないLink間(例えば、図6におけるLink1AとLink1B)は、干渉チェックを省略することができる。
【0038】
さらに、図6では、干渉判定領域サイズがL3ALimの大きさを持つLink3Aと、干渉判定領域サイズがL3BLimの大きさをもつLink3Bとの最近接距離について比較を行っている例を示している。干渉危険性のあるロボット構成部分同士の距離Lij(先の図4における33に相当)の変化に注目して、これが干渉しないかどうかを次のように判定する。
【0039】
各符号を次のように定義する。
Linki :ロボットAのロボット構成部分モデル(i=1,2、3、4)
Linkj :ロボットBのロボット構成部分モデル(j=1,2、3、4)
Lij :LinkiとLinkjの距離
LiLim、LjLim :干渉判定領域となるロボット構成部分モデルごとの線分モデ
ルからの距離
この場合、ロボットAのLinkiと、ロボットBのLinkjとの間の干渉判定領域の大きさLijLimは、下式(3)となる。
LijLim=LiLim+LjLim (3)
【0040】
そこで、上式で規定されるLijLimを干渉判定用の閾値として用いることで、下式(4)の不等式を満たさない場合に、干渉が起こると判断できる。
LijLim≦Lij (4)
【0041】
現在時刻から制動を開始した際に、停止までのロボット構成部分モデル間距離の変化曲線Lij(t)が、LijLimに1度でも達するか否かを推定し、曲線Lij(t)がLijLimに達することがなければ、干渉がないと判定可能である。そこで、次に、ロボット構成部分モデル間距離Lijの推定方法について説明する。
【0042】
まず、2つのロボット構成部分モデル間の接近について考える。モデル間距離は、上述したように、ロボット構成部分モデル間の最近接距離Lijで定義される。従って、ロボット構成部分モデル間の最近接距離Lijの履歴Lij(t)をたどることができれば、正確な干渉チェックが可能である。しかしながら、制動開始から停止までの距離変化を全時間に渡って計算することは、多大な計算負荷がかかることとなる。このため、例えば、実時間で干渉を推定して停止などを考えるときには、全時間に渡って計算することは、計算負荷の観点から現実的ではない。
【0043】
また、ロボット構成部分間の最近接点は、時々刻々と位置が変化する。このため、有限の最近接距離の履歴Lij(t)から、全時間に渡って最近接点の位置変化を加味してLij(t)を正確に推定することは、困難である。
【0044】
そこで、本発明では、Lijの推定には、Lijの接近速度値L(・)ijを考慮して、次のように行っている。ただし、(・)は、()の前の距離を表す記号の上部に・が付いた速度値を意味している。Lijの接近速度値L(・)ijに関し、最近接点の位置変化分で干渉見落としが発生しないように、2線分の接近に関して接近速度値の上限値L(・)ijLimが定義できる。このことから、L(・)ijLimの積分値をこれまでのLijに足しこむ方法で、制動開始から制動完了までのLij(t)の接近上限値を推定することができる。
【0045】
ここで、接近速度についての上限値L(・)ijLimの定義について以下に示す。図7は、本発明の実施の形態1における最近接位置における速度よりもリンク端における速度が速度値として大きいことを表す説明図である。図7に示すように、2つのロボット構成部分の線分モデルLinkiとLinkjそれぞれの最近接点付近の速度Vicls、VjclsとLijの微分値にあたる接近速度値L(・)ijの関係は、2つの線分モデルの最近接方向ベクトルをNijclsとするとき、下式(5)で表される。
L(・)ij=Nijcls(Vicls−Vjcls) (5)
【0046】
また、Linkiの最近接点付近の速度Viclsは、Linkiの端点速度Viedg01とViedg02のどちらかの端点速度(図7中の符号61、63、64参照)よりも必ず遅い。このため、接近方向に対して大きい方の端点速度を、上限値Viedgとすることができる。上限値Viedgを用いた場合には、L(・)ijを知る目的でロボット構成部分モデル線分上にある最近接点および最近接距離Lij計算をする必要がないため、計算負荷が少なくてすむ。端点速度から導かれる上限値L(・)ijdに基づいて、制動時間tstp経過するまでのLijを推定した場合、干渉は起こらない。
【0047】
以上を踏まえて、制動時間tstpが経過するまでのロボットモデル間距離Lijを推定する際には、次のように行なう。制動開始から制動完了までのL(・)ijをプロットすることは、計算負荷となる。そこで、ここでは、推定のための有限なn個の2つの線分モデルのリンク端速度情報(63、64)を参照情報として得て、それを元にLijの推定を行なう。
【0048】
図8は、本発明の実施の形態1におけるLijを推定するロボット間距離推定手段916の内部構成図である。図8におけるロボット間距離推定手段916は、サンプリング時間決定手段912、ロボット位置計算手段913、端点速度計算手段914、およびロボット間距離推定値計算手段915で構成される。
【0049】
サンプリング時間決定手段912は、この参照情報を得る時刻を決定する。サンプリング時間決定手段912は、ロボットが軌道通りに進んで停止するとして、制動を開始してから停止するまでの制動時間tstp(903)をn分割(nは自然数)することで、サンプリングする時間tsmpk(904)を、例えば、下式(6)として決定する。
tsmpk=tnow+tstp*k/n(k=1、2、・・・n−1) (6)
【0050】
ここで、添字kについては、サンプリング時間の通し番号とする。次に、サンプリングする時間tsmpkの各時刻において、ロボット位置計算手段913は、ロボット構成部分の端点位置(905)を計算する。また、ロボット位置計算手段913は、1計算周期にかかる時間をdtとした場合、dt後の時刻(tsmpk+dt)におけるロボット構成部分の端点位置(905)も、同様に計算しておく。
【0051】
リンク端速度情報(図7における63、64参照)を計算する方法として、ここでは、例えば、ロボット構成部分モデルにおける2つの端点(以下の説明では、edg01とedg02で区別する)の時刻tsmpkにおける位置pedg01(tsmpk)とpedg02(tsmpk)、時刻tsmpk+dtにおけるpedg02(tsmpk+dt)とpedg02(tsmpk+dt)の差分から計算する方法をとる。
【0052】
これによって、端点速度計算手段914は、サンプリングする時刻tsmpk(k=1、2、・・・、n−1)における各ロボット構成部分の端点速度Viedg01(tsmpk)、Viedg02(tsmpk)、Vjedg01(tsmpk)、Vjedg02(tsmpk)(906)を得ることができる。
【0053】
この後、Lijの推定値を計算するロボット間距離推定値計算手段915は、上述したように、Linkiの最近接点付近の速度ViclsがLinkiの端点速度Viedg01とViedg02のどちらかの端点速度(63,64)よりも必ず遅いため、接近方向に対して大きい方の端点速度を上限値Viedgとすることができる。ここでは、この上限値Viedgを構成部分の速度上限値としている。
【0054】
2つの端点速度について、それぞれtsmpkにおけるViedg (tsmpk)、Vjedg(tsmpk)が分かっているので、上限値L(・)ijd(502)は、最近接方向ベクトルをNijclsとして、下式(7)という形で求められる。
L(・)ijd=Nijcls・(Viedg(tsmpk)−Vjedg(tsmpk)) (7)
【0055】
ここで得られる端点ごとの2つのL(・)ijdのうち、接近方向に対してより大きい方を上限値L(・)ijdと定める。また、ここでは、簡単の為に、n=3としてサンプリングし、各サンプリング間を台形近似してΔLijdを計算する。図9は、本発明の実施の形態1におけるロボット構成部分の端点速度を用いて最近接点間距離を計算する場合の、速度値から距離を計算するための台形近似を表す説明図である。
【0056】
この図9に示すような台形近似により、下式(8)を用いることで、サンプリング時刻ごとにおける推定値Lijdを得る。
Lijd=Lij(tnow)+ΔLijd (8)
【0057】
干渉判定手段917は、干渉判定を行なうための干渉判定領域の閾値をあらかじめ記憶している干渉判定用閾値記憶手段918から、チェック対象としているロボット構成部分モデルの干渉判定領域の大きさから定義される干渉判定の閾値LijLim908を読み出す。そして、干渉判定手段917は、上述した推定方法を利用してロボット間距離推定手段916で求められるロボット間距離の推定値Lijd907と、読み出した干渉判定の閾値LijLim908との比較を、下式(9)により行ない、サンプリング時刻ごとに干渉判定する。
LijLim≦Lijd (9)
【0058】
上式(9)の条件を満たす場合には、干渉判定手段917は、干渉は起こらないと判定して指令値生成手段919にその旨を伝達する(909)。この場合は、移動指令値としてロボット制御装置内で追従する目標値に向かう移動指令が生成される。一方、上式(9)の条件を満たさない場合には、干渉判定手段917は、干渉の危険性があると判定して、移動指令値として停止を開始するための指令変更の伝達(909)を指令値生成手段919に対して行なう。
【0059】
図10は、本発明の実施の形態1において、推定結果に基づく干渉判定手段917により干渉の危険性があると判定された場合に減速開始を行なう説明図である。この図10に示すように、判定を行なう現在時刻tnow201における推定結果に基づいて、干渉すると判定されるリミット(601)に達した際に干渉の危険性があると判定いた場合には、干渉判定手段917は、減速停止を開始するための指令変更の伝達(909)を指令値生成手段919に対して行なう。
【0060】
以上のように、実施の形態1によれば、制動開始から制動完了までの間の構成部分同士の距離の変化について、速度上限値に基づいて最近接距離の変化の推定を行っている。そして、ロボット構成部分ごとの距離の変化の推定結果に基づいて、制動開始から制動完了までの間にロボット同士の干渉がないかどうかを判定している。この結果、制動動作中に構成部分同士が干渉するケースを見落とすことがなくなり、近接配置され動作領域が重複するロボット間の干渉問題において、従来方法と比較して、漏れなく干渉状態を発見する効果がある。
【0061】
実施の形態2.
先の実施の形態1におけるロボット間距離推定手段916は、図8に示したように、端点速度計算手段914により求めた各サンプリング時刻における端点速度に基づいて、ロボット間距離の推定を行っていた。これに対して、本実施の形態2は、ロボット間距離の推定を行なうための十分な計算能力を備えている場合に、より高精度な推定を行なう場合について説明する。
【0062】
図11は、本発明の実施の形態2におけるLijを推定するロボット間距離推定手段916aの内部構成図である。図11におけるロボット間距離推定手段916aは、サンプリング時間決定手段912、ロボット位置計算手段913、最近接点・最近速度計算手段914a、およびロボット間距離推定値計算手段915で構成される。
【0063】
図11における最近接点・最近速度計算手段914aは、先の実施の形態1に記載のn個のサンプリングそれぞれに対して最近接距離Lijと最近接点における接近速度Vicls、Vjclsの計算(914)を行ない、上式(5)を計算することでL(・)ijを求める。
【0064】
図12は、本発明の実施の形態2における制動開始から停止までの接近速度変化について、最近接距離をもとにしたものとロボット構成部分の端点速度での比較の一例を表す図である。白丸で示したプロットが、先の実施の形態1におけるロボット間距離推定手段916による推定結果を示しており、黒丸で示したプロットが、本実施の形態2におけるロボット間距離推定手段916aによる推定結果を示している。
【0065】
図12に示すように、実際のロボット構成部分モデル間の最近接距離Lijの時間変化で求められる接近速度L(・)ij(501)を上限値L(・)ijd(502)の代わりに利用することで、実際の停止までの速度変化(511)をより精度よく予測することができる。
【0066】
以上のように、実施の形態2によれば、最近接距離と最近接点における接近速度の計算を行なうことにより、制動開始から実際の停止までの速度変化を、より高精度に予測することができる。
【0067】
実施の形態3.
本実施の形態3は、干渉が発生すると判定され、停止動作を開始した後も、干渉判定を行ない続け、評価式(上式(4)に相当)で干渉がないと判断されれば、動作を再び継続する場合について説明する。
【0068】
図13は、本発明の実施の形態3において、制動開始後に、引き続き干渉チェックを行った際に推定値Lijdが干渉判定領域の閾値LijLimよりも大きくなった場合の継続動作を示す説明図である。あるロボット構成部分同士の距離Lijについて見るときに、停止動作によって見積もった距離Lijは、大きく見積もってしまう場合がある(図13の614参照)。
【0069】
これに対して、本実施の形態3は、現在時刻(201)の干渉判定において干渉の危険性があると判定された場合には減速を行なう。一方で、減速開始後の時刻t' now(202)において干渉の危険性がないと判定された場合には、減速を中止し、動作を継続させる(図13の615参照)。また、それまでに減速を行なっていなければ、軌道通りに動作を継続させるという処理を行なう。
【0070】
以上のように、実施の形態3によれば、停止終了した位置について、特に、特許文献3に示されるようなリアルタイムで動的に計算された停止指令の生成が必要な場合において、停止動作中にも干渉するか否かの判定を行ない、必要に応じて減速をやめることで、ロボットは動作を続けることができる。高速動作時においては、推定誤差も大きくなるため、このように、停止動作中にも干渉するか否かの判定を行なうことで、制動開始時の推定が大きすぎて停止を開始してしまった場合にも、その後の状況に応じて継続動作が可能となる。
【0071】
これにより、従来方法で見落とされていた干渉を見落とさずに判定でき、ロボット同士の干渉が生じないとともに、最適な停止位置まで干渉することなく接近を続けることができる効果がある。
【0072】
なお、本発明は、ロボット同士の場合の干渉チェックに限定されるものではない。一方がロボットであり、他方がモデル化された周辺装置や冶具などを含めた外部環境の場合にも適用可能である。このような外部環境について、あらかじめ形状と位置のデータを登録しておき、ロボットとの相対的な位置関係や動作の相対的な関係の情報が、通信によって共有化できるときに、同様の干渉チェックを適用することができる。
【図面の簡単な説明】
【0073】
【図1】本発明の実施の形態1における干渉チェック制御装置の構成図である。
【図2】本発明の実施の形態1において干渉チェックを行なうロボットシステムの構成例を表す図である。
【図3】本発明の実施の形態1におけるロボットの線分モデルの例示図である。
【図4】本発明の実施の形態1におけるモデル化された2線分間の最近接点を幾何的に表した図である。
【図5】本発明の実施の形態1における干渉判定領域の説明図である。
【図6】本発明の実施の形態1における2つのロボット間の干渉チェック方法の説明図である。
【図7】本発明の実施の形態1における最近接位置における速度よりもリンク端における速度が速度値として大きいことを表す説明図である。
【図8】本発明の実施の形態1におけるLijを推定するロボット間距離推定手段の内部構成図である。
【図9】本発明の実施の形態1におけるロボット構成部分の端点速度を用いて最近接点間距離を計算する場合の、速度値から距離を計算するための台形近似を表す説明図である。
【図10】本発明の実施の形態1において、推定結果に基づく干渉判定手段917により干渉の危険性があると判定された場合に減速開始を行なう説明図である。
【図11】本発明の実施の形態2におけるLijを推定するロボット間距離推定手段916aの内部構成図である。
【図12】本発明の実施の形態2における制動開始から停止までの接近速度変化について、最近接距離をもとにしたものとロボット構成部分の端点速度での比較の一例を表す図である。
【図13】本発明の実施の形態3において、制動開始後に引き続き干渉チェックを行った際に推定値Lijdが干渉判定領域の閾値LijLimよりも大きくなった場合の継続動作を示す説明図である。
【符号の説明】
【0074】
910 ロボット速度・位置記憶手段、911 制動時間計算手段、912 サンプリング時間決定手段、913 ロボット位置計算手段、914 端点速度計算手段、914a 最近接点・最近速度計算手段、915 ロボット間距離推定値計算手段、916、916a ロボット間距離推定手段、917 干渉判定手段、918 干渉判定用閾値記憶手段、919 指令値生成手段。
【特許請求の範囲】
【請求項1】
それぞれの動作領域に重複する部分を有するロボット同士の干渉チェック制御装置であって、
計算周期ごとに算出されたロボットの速度・位置データを記憶する速度・位置記憶手段と、
各ロボット間の干渉判定を行なうための干渉判定領域の閾値をあらかじめ記憶する干渉判定用閾値記憶手段と、
前記速度・位置記憶手段に記憶された前記速度・位置データに基づいて、ロボットが現時点から制動を開始した際に完全に停止するまでに必要な時間を計算する制動時間計算手段と、
制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定手段と、
推定された各構成部分間の前記最近接距離の履歴と、前記干渉判定用閾値記憶手段にあらかじめ記憶された干渉判定領域の前記閾値とを比較し、制動開始から制動完了までの間の干渉の有無を判定する干渉判定手段と、
前記干渉判定手段による干渉判定結果に応じて、計算周期ごとに各ロボットに対する移動指令値を作り出すとともに、現在の計算周期におけるロボットの速度・位置データを前記速度・位置記憶手段に記憶させる指令値生成手段と
を備えることを特徴とする干渉チェック制御装置。
【請求項2】
請求項1に記載の干渉チェック制御装置において、
前記ロボット間距離推定手段は、制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の端点速度から導かれる速度上限値に基づいて推定することを特徴とする干渉チェック制御装置。
【請求項3】
請求項1に記載の干渉チェック制御装置において、
前記ロボット間距離推定手段は、制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の最近接点における接近速度に基づいて推定することを特徴とする干渉チェック制御装置。
【請求項4】
それぞれの動作領域に重複する部分を有するロボット同士の干渉チェック制御方法であって、
第1の記憶部に記憶された速度・位置データに基づいて、ロボットが現時点から制動を開始した際に完全に停止するまでに必要な時間を計算する制動時間計算ステップと、
制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定ステップと、
推定された各構成部分間の前記最近接距離の履歴と、第2の記憶部にあらかじめ記憶された干渉判定領域の閾値とを比較し、制動開始から制動完了までの間の干渉の有無を判定する干渉判定ステップと、
前記干渉判定ステップによる干渉判定結果に応じて、計算周期ごとに各ロボットに対する移動指令値を作り出すとともに、現在の計算周期におけるロボットの速度・位置データを前記第1の記憶部に記憶させる指令値生成ステップと
を備えることを特徴とする干渉チェック制御方法。
【請求項1】
それぞれの動作領域に重複する部分を有するロボット同士の干渉チェック制御装置であって、
計算周期ごとに算出されたロボットの速度・位置データを記憶する速度・位置記憶手段と、
各ロボット間の干渉判定を行なうための干渉判定領域の閾値をあらかじめ記憶する干渉判定用閾値記憶手段と、
前記速度・位置記憶手段に記憶された前記速度・位置データに基づいて、ロボットが現時点から制動を開始した際に完全に停止するまでに必要な時間を計算する制動時間計算手段と、
制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定手段と、
推定された各構成部分間の前記最近接距離の履歴と、前記干渉判定用閾値記憶手段にあらかじめ記憶された干渉判定領域の前記閾値とを比較し、制動開始から制動完了までの間の干渉の有無を判定する干渉判定手段と、
前記干渉判定手段による干渉判定結果に応じて、計算周期ごとに各ロボットに対する移動指令値を作り出すとともに、現在の計算周期におけるロボットの速度・位置データを前記速度・位置記憶手段に記憶させる指令値生成手段と
を備えることを特徴とする干渉チェック制御装置。
【請求項2】
請求項1に記載の干渉チェック制御装置において、
前記ロボット間距離推定手段は、制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の端点速度から導かれる速度上限値に基づいて推定することを特徴とする干渉チェック制御装置。
【請求項3】
請求項1に記載の干渉チェック制御装置において、
前記ロボット間距離推定手段は、制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の最近接点における接近速度に基づいて推定することを特徴とする干渉チェック制御装置。
【請求項4】
それぞれの動作領域に重複する部分を有するロボット同士の干渉チェック制御方法であって、
第1の記憶部に記憶された速度・位置データに基づいて、ロボットが現時点から制動を開始した際に完全に停止するまでに必要な時間を計算する制動時間計算ステップと、
制動開始から制動完了までの各ロボット同士の各構成部分間の最近接距離の履歴を、接近する各構成部分の速度に基づいて推定するロボット間距離推定ステップと、
推定された各構成部分間の前記最近接距離の履歴と、第2の記憶部にあらかじめ記憶された干渉判定領域の閾値とを比較し、制動開始から制動完了までの間の干渉の有無を判定する干渉判定ステップと、
前記干渉判定ステップによる干渉判定結果に応じて、計算周期ごとに各ロボットに対する移動指令値を作り出すとともに、現在の計算周期におけるロボットの速度・位置データを前記第1の記憶部に記憶させる指令値生成ステップと
を備えることを特徴とする干渉チェック制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2010−52116(P2010−52116A)
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願番号】特願2008−222111(P2008−222111)
【出願日】平成20年8月29日(2008.8.29)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願日】平成20年8月29日(2008.8.29)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
[ Back to top ]