説明

ロボットの干渉回避方法およびロボット

【課題】同時に動作する複数のロボットにおいて、それらのロボットが干渉を回避するために待機する場合、できるだけ目標位置近くで待機して干渉の恐れがなくなったときに短時間で目標位置に到着する。
【解決手段】第1,2のロボット1,2が目標位置に向って移動する場合、その目標位置での占有領域M1,M2を設定する。占有領域M1,M2が重なる干渉領域Vで一方のロボットが作業をしている間、他方のロボットは、干渉領域Vの直ぐ近くで待機する。このため、一方のロボットが干渉領域Vでの作業を終えた後、他方のロボットは、目標位置に移動する動作を再開するが、自身の占有領域内からの動作再開であるから、短時間で目標位置に到達する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のロボットが同時に動作する場合の互いの干渉を回避するためのロボットの干渉回避方法およびロボットに関する。
【背景技術】
【0002】
特許文献1には、複数のロボットが同時に動作する場合の干渉を回避する方法が開示されている。この方法は、図9に示すように、2台のロボットRA,RBが同時に動作する場合に、それらロボットRA,RBの各々が、動作指令によって移動する目標位置PA,PBに移動するとき、それらの目標位置PA,PBにおける占有領域MA,MBを求め、互いの占有領域を通信によって記憶しておく。そして、ロボットRA,RBの占有領域MA,MBが互いに重なる部分を有する場合、ロボットRA,RBのうちの一方のロボットが先に自身の占有領域に移動すると、他方のロボットは、自身の占有領域に入る手前で停止する、という構成である。
【特許文献1】特許第2895672号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記構成では、2台のロボットのうち、一方のロボットが先に自身の占有領域に入ると、他方のロボットは、自身の占有領域に入ることなく、その時点で停止し、一方のロボットが自身の占有領域から退出した後で占有領域への進入動作を再開する。図9の例では、一方のロボットRAが先に自身の占有領域MAに進入した状態を示しており、他方のロボットRBは、その時点で、自身の占有領域MBに入ることなく停止する。そして、一方のロボットRAが自身の占有領域MAから退出すると、他方のロボットRBが自身の占有領域MBに進入する動作を再開するのである。
【0004】
しかしながら、この構成では、後から自身の占有領域に侵入するロボットは、先に自身の占有領域に侵入したロボットが退出した後でしか自身の占有領域への進入動作を開始しない。このため、2台のロボットは、それらの占有領域が重なる領域(干渉領域)に同時に入らなければ干渉する事態は生じないにもかかわらず、後から自身の占有領域に向って移動するロボットは、自身の占有領域の外側で待機しなければならず、一連の動作を完了するに要する時間が長くなる。
【0005】
本発明は上記の事情に鑑みてなされたもので、その目的は、同時に動作する複数のロボットにおいて、それらのロボットが干渉を回避するために待機する場合、できるだけ目標位置近くで待機して干渉の恐れがなくなったときに短時間で目標位置に到着することができるロボットの干渉回避方法およびロボットを提供することにある。
【課題を解決するための手段】
【0006】
請求項1の発明は、同時に動作する複数のロボットの干渉回避方法において、前記複数のロボット毎に、動作指令によって移動する目標位置での占有領域を求め、自身の前記占有領域が他のロボットとの通信によって取得した当該他のロボットの前記占有領域と重なり合う干渉領域が存在し、且つ前記他のロボットとの通信によって当該他のロボットが前記干渉領域内に進入したことを検出したとき、前記干渉領域へ進入する直前ないし前記干渉領域に僅か入ったところで動作を停止し、前記他のロボットが前記干渉領域から退出したとき、前記干渉領域へ進入する動作を再開することを特徴とするものである。
【0007】
請求項2の発明は、ロボット本体と、このロボット本体に動作指令を発すると共に、前記ロボット本体が前記動作指令通りの動作を行うように制御する制御手段と、前記ロボット本体が前記動作指令によって移動する目標位置での当該ロボット本体の目占有領域を定める占有領域設定手段と、他のロボットと通信して当該他のロボットの移動に関する情報を取得する通信手段と、前記占有領域設定手段により取得した前記占有領域と前記通信手段によって取得した情報に基づく前記他のロボットの前記占有領域とが重なる領域を干渉領域として定める干渉領域設定手段と、前記通信手段によって取得した情報に基づいて前記他のロボットの現在位置が前記干渉領域内にあるとき、前記ロボット本体を前記干渉領域に侵入する直前ないし前記干渉領域に僅か入ったところで停止させる停止手段とを具備してなるロボットにある。
【0008】
上記構成の本発明によれば、複数のロボットは、それぞれの目標位置での占有領域が互いに重なる場合、その重なり合う干渉領域にいずれかのロボットが進入したとき、他のロボットは、その干渉領域に進入する直前で停止する。このように、他のロボットは、自身の占有領域への進入は許容されるので、自身の占有領域の外側で待機する構成に比べ、寄り目標位置の近くで待機でき、その後に動作再開となった場合に、目標位置に早く到着することができる。
【発明を実施するための最良の形態】
【0009】
以下、本発明の一実施形態を図1ないし図8に基づいて説明する。この実施形態では、図8に示すように、2台のロボット1,2が互いに接近して配置され、それら2台のロボットのうち、第1のロボット1が前工程作業を行い、第2のロボット2が後工程作業を行うものとする。そして、第1のロボット1は、作業台3で前工程作業を行い、その作業終了後、作業対象物であるワーク4をパレット5に収納し、第2のロボット2は、パレット5からワーク4を把持して作業台6にて次工程作業を行うものとする。このような2台のロボット1,2において、それらの作業領域E1,E2は、その一部領域、この実施形態ではパレット5部分において互いに重なり合っている。この重なり合う領域は、2台のロボット1,2の共有領域Bである。
【0010】
第1および第2のロボット1および2は同一構成のもので、図4に示すように、ロボット本体7、制御装置8およびティーチングペンダント9からなる。ロボット本体7は、例えば6軸の垂直多関節型のもので、床に固定されたベース10と、このベース10に水平方向に旋回可能に支持されたショルダ部11と、このショルダ部11に上下方向に旋回可能に支持された下アーム12と、この下アーム12に上下方向に旋回可能に支持された第1の上アーム13と、この第1の上アーム13の先端部に捻り回転可能に支持された第2の上アーム14と、この第2の上アーム14に上下方向に回転可能に支持された手首15と、この手首15に回転(捻り動作)可能に支持されたフランジ16とから構成されている。上記のベース10を含め、ショルダ部11、下アーム12、第1の上アーム13、第2の上アーム14、手首15、フランジ16は、ロボットにおけるリンクとして機能する。そして、ワーク4を把持するハンド17(図1、図2、図8参照)は、最先端のリンクであるフランジ16に取り付けられている。
【0011】
一方、前記制御装置8は、図7に示すように、制御手段としてのCPU18、駆動回路19、位置検出手段としての位置検出回路20を備えている。そして、上記CPU18には、記憶手段として、ロボット全体のシステムプログラムおよび動作プログラムを作成するためのロボット言語などを記憶するROM21と、垂直多関節型ロボット2の動作プログラムなどを記憶するRAM22とが接続されていると共に、ティーチング作業を行なう際に使用する前記ティーチングペンダント9および他のロボットと通信して当該他のロボットの現在位置情報などを取得する通信手段としての通信回路23が接続されている。
【0012】
上記位置検出回路20は、ベース10を除く各リンク11〜16の位置を検出するためのもので、この位置検出回路20には、各リンク11〜16の駆動源であるモータ24に設けられた位置センサとしてのロータリエンコーダ25が接続されている。上記位置検出回路20は、ロータリエンコーダ25の検出信号によってベース10に対するショルダ部11の回転角度、ショルダ部11に対する下アーム12の回転角度、下アーム12に対する第1の上アーム13の回転角度、第1の上アーム13に対する第2の上アーム14の回転角度、第2の上アーム14に対する手首15の回転角度、および手首15に対するフランジ16の回転角度を検出し、その位置検出情報はCPU18に与えられる。
【0013】
そして、CPU18は、動作プログラムに基づいてショルダ部11、各アーム12〜14、手首15およびフランジ16を動作させる際、位置検出回路20からの入力信号をフィードバック信号としてそれらの動作を制御するようになっている。なお、図4では、モータ24およびロータリエンコーダ25は1個のみ示すが、実際には、ベース10を除く各リンク11〜16に対して一対一の関係で複数設けられているものである。
【0014】
各モータ24は、ベース10を除く各リンク11〜16の駆動源であると共に、回生制動、或いは逆転トルク制動(逆転トルクを発生して制動する。)によって各リンク11〜16を制動する制動手段としても機能する。そして、各リンク11〜16の質量が既知であり、またモータ24の回転速度から所望時点での各リンク11〜16の速度を検出可能であることから、所望時点で制動の開始から停止までの間にハンド17が移動する距離(以下、ハンド17の制動距離Sという。)を演算することができるようになっている。
【0015】
ここで、各リンク11〜16には、それぞれ3次元の座標が固定されている。このうち、床面に据え付けられるベース10の座標系は不動である。この不動のベース10の座標系は、垂直多関節型ロボット2の基準座標とされるものであり、他の座標系は各回転関節の回転によって基準座標上での位置と向きが変化する。そして、制御装置8(CPU18)は、位置検出回路20から入力されるショルダ部11、各アーム12〜14、手首15およびフランジ16の各回転関節の位置検出情報と予め記憶されている各関節の長さ情報に基づいて、各関節の座標の位置と向きを、座標変換の演算機能により基準座標上での位置と向きに変換して認識することができるようになっている。
【0016】
さて、上記各関節の座標系のうち、フランジ16の座標系は、図5に示すように、フランジ16の先端面の回転中心P0 を原点とし、フランジ11の先端面上で2つの座標軸、フランジ16の回転軸上で1つの座標軸が定められている。これら3つの座標軸Xf ,Yf ,Zf の方向は使用者において自由に設定できるようになっている。この実施例では、図5に示すように、Xf およびYf の2軸はフランジ16の先端面上に存在し、残るZf 軸はフランジ16の回転軸上に存在するように定められているものとする。
【0017】
そして、ロボットの姿勢、すなわちロボットアームの先端のフランジ16の姿勢は、図5に示すように、フランジ16の座標系の原点P0からZf 軸に沿ってその負方向に突出する単位長さ「1」のアプローチベクトルAと、原点P0 からXf 軸に沿ってその正方向に突出する単位長さ「1」のオリエントベクトルOを設定し、フランジ16の座標系をその原点P0 が基準座標系の原点に合致するように平行移動させたとき、その基準座標系上でのアプローチベクトルAとオリエントベクトルOで表すようにしている。
【0018】
このフランジ16に取り付けられた前記ハンド17は、把持したワーク4をパレット5内に収納する場合、およびパレット5からワーク4を取り出す場合、鉛直下向きとなってワーク4の把持を解いたり、ワーク4を把持したりする。このため、パレット5近くでは、ロボット1,2は、ハンド17を垂直下向きにして作業を行うようになっており、このときフランジ16は、先端面が水平となるようにアプローチベクトルAを鉛直下向きにした状態となる。
【0019】
さて、本実施形態では、パレット5近くでハンド17を鉛直下向きとするような姿勢をとるロボット1,2において、それぞれの先端であるハンド17部分に占有領域Mを設定する。この占有領域Mは、共有領域B内に2台のロボット1,2が進入しても、当該占有領域M内に相手のロボットが進入しなければ互いに干渉しないような領域として定める。本実施形態では、ロボット1,2の占有領域Mを、図6に示すように、フランジ16のZf軸を中心軸とし、直径rが手首15を支持する第2の上アーム14の先端部分における左右方向の最大幅寸法或いはこれよりもやや長い寸法の円筒形領域に定めるものとする。この占有領域Mは、記憶手段としてRAM22に記憶させてある。
【0020】
ロボット1,2に、ロボット本体7が行う作業内容を記憶させるためのティーチングは、ティーチングペンダント9を用いてハンド17を所望する複数の経由点に移動させ且つ各経由点でハンド17に所望の姿勢を取らせることによって行われる。ティーチングによって定められたハンド17の経由点とハンド17の姿勢、即ちフランジ16の経由点の基準座標上の位置と姿勢、およびフランジ16にその経由点と姿勢を取らせるための各リンク11〜16の基準座標上の位置と姿勢は、制御装置8のRAM22に記憶される。本実施形態でのティーチングは、各ロボット1,2について作業台3,6での作業、作業台3,6とパレット5との間でのワーク4の搬送作業である。
【0021】
さて、2台のロボット1,2に前工程作業および後工程作業を行わせるためにティーチングした作業を実行させると、各制御装置8のCPU18は、各モータ24に目標位置へ移動する動作指令を出力し、当該目標位置に到着すると次の目標位置へ移動する動作指令を出力することを繰り返す。本実施形態では、第1のロボット1は、作業台3とパレット5とを目標位置とし、第2のロボット2は、パレット5と作業台6とを目標位置として、その目標位置間で繰り返し往復移動動作を行う。なお、目標位置間で各ロボット1,2が移動する動作は、ティーチングされた経由位置を通る移動動作となる。
【0022】
以上のような両ロボット1,2にあっては、第1のロボット1がパレット5にワーク4を収納し、第2のロボット2がパレット5からワーク4を取り出すとき、場合によっては両ロボット1,2が同時に共有領域B内に進入し、干渉し合う可能性がでてくる。本実施形態では、各ロボット1,2が有する干渉回避機能によって2台のロボット1,2が同時に共有領域B内に進入しても、干渉回避機能によって互いに干渉し合うことを回避する。この干渉回避機能について、図3のフローチャートをも参照しながら説明する。
【0023】
各ロボット1,2において、その制御装置8のCPU18は、各モータ24に目標位置へ移動する動作指令を出力する(ステップS1)と共に、その目標位置においてアプローチベクトルAを鉛直方向を向けた状態での占有領域Mを設定(標準座標上で)してこれをRAM22に記憶し(ステップS2:占有領域設定手段)、目標位置へ移動する動作を開始させる(ステップS3)。そして、各ロボット1,2は、通信回路23を介して目標位置と当該目標位置での占有領域Mとを互いに通知する。また、各ロボット1,2は、自身の位置を逐次通信回路23を介して互いに通知するようにもなっている。
【0024】
目標位置への移動動作を開始させると、CPU18は、占有領域Mが他のロボットの占有領域Mと重なるか否かを判断する(ステップS4:干渉領域発生判断手段)。例えば、第1のロボット1の目標位置がパレット5で、第2のロボット2の目標位置が作業台6であるような場合には、両ロボット1,2の占有領域M1,M2は重ならず、CPU18は、ステップS4では「NO」と判断する。また、両ロボット1,2の目標位置が共にパレット5である場合には、それらの占有領域が重なる部分(干渉領域)ができる。
【0025】
(占有領域が重ならない場合)
両ロボット1,2の占有領域M1,M2が重ならない場合、各ロボット1,2のCPU18は、ステップS4で「NO」と判断し、ステップS5に移行する。ステップS5では、CPU18は、現在位置、各リンク11〜16の質量と現在速度とから、現時点で制動を開始したと仮定したとき、その停止位置が自身の占有領域M内であるか否かを判断する。制動停止位置が占有領域M外であった場合(ステップS5で「NO」)、CPU18は、動作を継続する。この動作継続により、ハンド17部分が占有領域Mに次第に近付いて行き、制動停止位置が占有領域M内になると、CPU18は、ステップS5で「YES」と判断してステップS7に移行する。
【0026】
ステップS7でCPU18は、自身の占有領域M内に他のロボットがいるか否かを判断する。例えば、図2(a)に示すように、第1のロボット1の目標位置P1がパレット5で、第2のロボット2がパレット5から目標位置P2である作業台6に向って動作し始めたような場合には、第1のロボット1の占有領域M1内に第2のロボット2が位置しているので、第1のロボット1のCPU18は、ステップS7で「YES」と判断する。また、図2(b)に示すように、第1のロボット1の目標位置P1がパレット5で、第2のロボット2がパレット5から目標位置P2である作業台6の近くまで移動していたような場合には、第2のロボット2は、第1のロボット1の占有領域M1から退出しているので、第1のロボット1のCPU18は、ステップS7で「NO」と判断する。
【0027】
自身の目標位置での占有領域Mに他のロボットがおらず、ステップS7で「NO」と判断した場合、CPU18は、ロボット本体7を目標位置に向って動作させ続ける(ステップS8、ステップS9で「NO」のくり返し)。そして、ハンド17が目標位置に到着して所定の作業を終えると、CPU18は、ステップS9で「YES」と判断して最初のステップS1に戻り、次の目標位置への動作指令を出力する。
【0028】
自身の目標位置での占有領域Mに他のロボットがいてステップS7で「YES」と判断した場合には、CPU18は、その時点で制動を開始してロボット本体7を停止させる(ステップS10)。これにより、ロボット本体7は、ハンド17が自身の占有領域Mの直前、或いは自身の占有領域Mに若干入ったところで停止させる。なお、制動を開始したと仮定したとき、その停止位置が自身の占有領域M内であるか否かを判断する場合の制動力よりも、実際の制動時の制動力の方を若干強くすることによって、占有領域Mの直前でハンド17を停止させることができる。この制動により、両ロボット1,2が一方のロボットの占有領域M内で干渉し合うことが回避される。そして、他のロボットが自身の占有領域Mから退出すると(ステップS11で「YES」)、CPU18は、ロボット本体7に動作を再開させ(ステップS12)、目標位置へ向って動作する(ステップS5で「YES」、ステップS7で「NO」、ステップS8、ステップS9)。
【0029】
(占有領域が重なる場合)
一方、図1(a)に示すように、両ロボット1,2の目標位置P1,P2がパレット5部分で、両者の占有領域M1,M2が重なって干渉領域Vを生ずる場合がある。この場合には、各ロボット1,2のCPU18は、ステップS4で「YES」と判断した後、現時点で制動を開始した場合の停止位置が干渉領域V内となるか否かを判断する(ステップS13)。制動停止位置が干渉領域V内とならない場合、CPU18は、ロボット本体7に動作を継続させる(ステップS13で「NO」、ステップS14)。
【0030】
そして、動作継続により、制動停止位置が干渉領域V内になると(ステップS13で「YES」)、CPU18は、次に他のロボットが干渉領域内にあるか否かを判断する(ステップS15:他ロボット存在判断手段)。他のロボットが干渉領域にない場合、CPU18は、目標位置への移動動作を継続し(ステップS16で「NO」、ステップS15で「NO」の繰り返し)、ロボット本体7が目標位置に移動し終えると(ステップS16で「YES」)、ステップS1に戻って新たな目標位置への移動動作を開始する。
【0031】
このステップS15で「NO」、ステップS16で「NO」の繰り返しで目標位置に到着する動作は、図1においてロボット2の動作に相当する。つまり、図1(b)に示すように、制動停止位置が干渉領域V内になったときには、第1のロボット1は、干渉領域Vの外側にあるので、先に目標位置P2に到着し、次に図1(c)、(d)に示すように、目標位置P2を作業台6に変えて当該目標位置P2への移動を開始するのである。
【0032】
ところで、制動を開始したと仮定したときの停止位置が干渉領域V内になった場合、その干渉領域V内に他のロボットがいることがある。図1(b)の例は、第2のロボット2が干渉領域V内にあって、第1のロボット1が実線で示す位置にあり、このとき制動を開始すると破線で示すように干渉領域V内にほんのわずか入った位置で停止する場合を示している。このような場合、現在位置が干渉領域V外にあるロボットのCPU18は、ステップS15で「YES」と判断し、ここで実際に制動を開始する(ステップS17:停止手段)。すると、そのロボット本体7は、干渉領域V内に僅かに入った位置、或いは干渉領域Vの直前で停止する。
【0033】
そして、他のロボットが干渉領域V内での作業を終了し、そして新たな目標位置に向って動作を開始すると、制動をかけて停止したロボットのCPU18は、他のロボットが干渉領域Vから退出したことを検出し(ステップS18で「YES」)、動作を再開する(ステップS19)。このように他のロボットが自身の占有領域Mから退出したことによって、動作を再開したロボットのCPU18は、ステップS4で「NO」となって前述の(占有領域が重ならない場合)と同様の制御動作を行い、これによりロボット本体7は、他のロボットのロボット本体7と干渉することなく、目標位置まで移動し所定の動作を行う。図1(c)および(d)の例では第2のロボット2が新たな目標位置P2を作業台6に定めて移動動作を開始し、第1のロボット1の占有領域M1から退出したこと、その後、第1のロボット1が動作を再開して目標位置P1へ移動したことを示している。
【0034】
このように本実施形態によれば、2台のロボット1,2の目標位置での占有領域が互いに重なり合う場合、それらの占有領域の重なり部分である干渉領域で一方のロボットが作業していても、他方のロボットは自身の目的位置での占有領域の外側で待機するのではなく、干渉領域の直前、或いは僅かに干渉領域に入ったところで待機するので、他方のロボットが干渉領域から退出すると、その後、短時間で目標位置まで到着でき、ロボットの一作業サイクルに要する時間を短縮できる。
【0035】
なお、本発明は上記し且つ図面に示す実施例に限定されるものではなく、以下のような拡張或いは変更が可能である。
円筒形の占有領域Mの直径を第2の上アーム14の最大幅よりも若干大きくしておけば、他のロボットが干渉領域Vに僅かに進入したところで停止しても干渉を確実に回避できる。
円筒形の占有領域Mは、軸方向長さが無限のものとして設定しても良いし、有限のものとして設定しても良い。有限のものとして設定した場合、平面的に見たとき複数ロボットで重なっても、上下方向で見たとき重ならないときには、干渉領域なしと判断される。
占有領域Mは、第2の上アーム14の最大幅を直径とする円筒形の領域に限られない。
ロボット本体7としては、垂直多関節型ロボットに限らない。
3台以上のロボットを同時に動作させる場合にも適用できる。
【図面の簡単な説明】
【0036】
【図1】本発明の一実施形態を示すもので、作用を説明するための概略的な平面図その1
【図2】作用を説明するための概略的な平面図その2
【図3】干渉回避のための制御内容を示すフローチャート
【図4】ロボットの斜視図
【図5】ロボット本体の先端部であるフランジの座標を示す斜視図
【図6】ロボットの占有領域を示す斜視図
【図7】ロボットの電気的構成を示すブロック図
【図8】ロボットの動作領域を示す概略的な平面図
【図9】従来のロボットの干渉回避動作を説明するための概略的な平面図
【符号の説明】
【0037】
図面中、1および2は第1および第2のロボット、7はロボット本体、8は制御装置、16はフランジ、17はハンド、18はCPU(制御手段、占用領域設定手段、干渉領域設定手段、停止手段)、24は通信回路(通信手段)を示す。

【特許請求の範囲】
【請求項1】
同時に動作する複数のロボットの干渉回避方法において、
前記複数のロボット毎に、
動作指令によって移動する目標位置での占有領域を求め、自身の前記占有領域が他のロボットとの通信によって取得した当該他のロボットの前記占有領域と重なり合う干渉領域が存在し、且つ前記他のロボットとの通信によって当該他のロボットが前記干渉領域内に進入したことを検出したとき、前記干渉領域へ進入する直前ないし前記干渉領域に僅か入ったところで動作を停止し、前記他のロボットが前記干渉領域から退出したとき、前記干渉領域へ進入する動作を再開することを特徴とするロボットの干渉回避方法。
【請求項2】
ロボット本体と、
このロボット本体に動作指令を発すると共に、前記ロボット本体が前記動作指令通りの動作を行うように制御する制御手段と、
前記ロボット本体が前記動作指令によって移動する目標位置での当該ロボット本体の目占有領域を定める占有領域設定手段と、
他のロボットと通信して当該他のロボットの移動に関する情報を取得する通信手段と、
前記占有領域設定手段により取得した前記占有領域と前記通信手段によって取得した情報に基づく前記他のロボットの前記占有領域とが重なる領域を干渉領域として定める干渉領域設定手段と、
前記通信手段によって取得した情報に基づいて前記他のロボットの現在位置が前記干渉領域内にあるとき、前記ロボット本体を前記干渉領域に侵入する直前ないし前記干渉領域に僅か入ったところで停止させる停止手段と
を具備してなるロボット。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−148527(P2007−148527A)
【公開日】平成19年6月14日(2007.6.14)
【国際特許分類】
【出願番号】特願2005−338765(P2005−338765)
【出願日】平成17年11月24日(2005.11.24)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】