説明

ロボットの干渉回避装置

【課題】ロボットを極力動作させながら、ロボットと人との接触を回避する。
【解決手段】ロボットアームが物体に近付く方向に移動する場合、人とロボットアームとがある距離以内に接近しているときには、ロボットアームを緊急停止させる。そして、人とロボットアームとがある距離を越えて離れているときには、離間距離に応じてロボットアームを減速させ、しかも、ロボットアームが人から遠ざかる方向に移動する場合には、ロボットアームを停止させたり、減速させたりすることなく、そのまま動作プログラムに従った動作を継続させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの停止を極力避けながらロボットと人との干渉を回避できるようにしたロボットの干渉回避装置に関する。
【背景技術】
【0002】
人がロボットの危険領域に侵入したとき、ロボットを停止させてロボットと人との接触を回避するようにした装置がある。例えば、特許文献1に開示された装置では、停止エリア(危険領域)の直ぐ外側付近に光線LBを通し、その外側にやや距離をおいて警告エリアを構成する光線LAを通し、光線LAが遮断されると、人が警告エリアの外側から内側へ侵入したとして、ロボットの動作速度を減速させ、更に、光線LBが遮断されると、人が警告エリアを通過して停止エリアへと侵入したとして、ロボットを停止させるようにしている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】実用新案登録第2587584号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の装置では、ロボットの移動方向とは関係なく、とにかく、人が警告エリア内に侵入するとロボットの動作速度を減速させ、停止エリア内に侵入するとロボットを停止させる。このため、ロボットの移動方向によっては、人と接触する恐れがない場合でも、ロボットは減速し、或は停止するため、ロボットによる作業効率が低下する。
【0005】
本発明は上記の事情に鑑みてなされたもので、その目的は、物体(人を含む)の位置とロボットの移動方向とを考慮して減速や停止の要・不要を判断し、ロボットの停止を極力避けながら、換言すれば、ロボットを極力動作させながら物体との接触を回避できるロボットの干渉回避装置を提供することにある。
【課題を解決するための手段】
【0006】
本発明では、物体が所定の領域内に侵入したとしても、ロボットアームが物体の侵入位置から遠ざかる方向に移動している場合には、ロボットの動作速度を減速したり、ロボットを停止させたりしない。例えば、ロボットアームと物体との間の距離が短くても、ロボットアームが物体から離れてゆくときには、ロボットアームを減速させたり、停止させたりすることなく、そのまま動作プログラムに従った動作を継続させる。ロボットアームが物体に近付いてゆく場合であっても、所要のアームの先端と物体との離間距離がある距離を越えている場合には、ロボットアームを離間距離に応じて減速動作させ、所要のアームの先端が物体に対し、緊急停止時の制動距離を考慮したある距離以内に接近した場合、ロボットアームを緊急停止させる。このため、ロボットアームの稼働率を高く維持しながら、ロボットアームと物体との接触(干渉)を回避できる。
【図面の簡単な説明】
【0007】
【図1】本発明の一実施形態を示すロボットの斜視図
【図2】ロボットの電気的構成を示すブロック図
【図3】干渉回避の制御内容を示すフローチャート
【図4】干渉回避の制御内容を補助的に説明するための平面図
【発明を実施するための形態】
【0008】
以下、本発明の一実施形態を図面に基づいて説明する。図2には、6軸の垂直多関節型ロボット1が示されている。このロボット1のロボットアーム2は、ベース3と、このベース3に第1軸Lc−1を中心に水平方向に旋回可能に支持されたショルダ部4と、このショルダ部4に第2軸Lc−2を中心に上下方向に旋回可能に支持された下アーム5と、この下アーム5に第3軸Lc−3を中心に上下方向に旋回可能に支持された第1の上アーム6と、この第1の上アーム6の先端部に第4軸Lc−4を中心に捻り回転可能に支持された第2の上アーム7と、この第2の上アーム7に第5軸Lc−5を中心に上下方向に旋回可能に支持された手首8と、この手首8に第6軸Lc−6を中心に捻り回転可能に支持されたフランジ9とから構成されている。なお、ロボット先端であるフランジ9には、ワークを把持するハンドや、視覚検査のために用いるカメラなどのエンドエフェクタ(図示せず)が取り付けられるようになっている。
【0009】
ベース3、ショルダ部4、下アーム5、第1の上アーム6、第2の上アーム7、手首8、フランジ9は、ロボットアーム2におけるアームとして機能し、固定アームであるベース3を除く各アーム4〜9は、前段のアームに回転可能に支持された回転関節軸(図示せず)に固定連結されている。そして、各アーム4〜9の回転関節軸は、それぞれ図2に示すサーボモータ10により減速装置11を介して回転されるようになっている。なお、各回転関節軸は、上記第1軸Lc−1〜第6軸Lc−6に相当するものである。
【0010】
ロボットアーム2の動作を制御する制御手段としての制御装置12は、マイコンからなり、図2に示すように、CPU13、ROM14およびRAM15を備えている。この制御装置12には、サーボモータ10の駆動回路16、サーボモータ10の回転角を検出する回転位置検出回路(回転位置検出手段)17が接続されている。この回転位置検出回路17は、サーボモータ10の回転軸(図示せず)に連結されたロータリエンコーダ(回転センサ)18から入力される回転検出信号に基づいてサーボモータ10の回転角を検出し、その回転角情報を制御装置12と駆動回路16に与える。なお、図2では、サーボモータ10は1台しか示されていないが、実際には、各アーム4〜9に1台ずつ設けられているものである。
【0011】
ここで、ベース3および各アーム4〜9には、3次元の座標が規定されている。このうち、床面に据え付けられるベース3の座標系(図1に座標軸XYZで示す。)は、不動の座標系で基準座標(ロボット座標)とされる。アーム4〜9の座標は、各アーム4〜9の図示しない回転関節軸の回転中心軸線上に設定されており、アーム4〜9の回転によりロボット座標上での位置と姿勢が変化する。ROM14には、ロボット座標上におけるショルダ部4の座標位置、ショルダ部4の座標上における下アーム5の座標位置、下アーム5の座標上における第1の上アーム6の座標位置、第1の上アーム6の座標上における第2の上アーム7の座標位置、第2の上アーム7の座標上における手首8の座標位置、手首8の座標上におけるフランジ9の座標位置、各アーム4〜9の長さなどの各種のパラメータが記憶されている。なお、以下では、各アーム4〜9の座標のロボット座標上の位置を、単に、各アーム4〜9の位置ということとする。
【0012】
ロボット先端であるフランジ9の座標の原点は、当該フランジ9の先端面の回転中心に定められている。そして、CPU13は、座標変換の計算機能を有し、ロボット先端の位置(姿勢を含む;以下同じ)が与えられると、当該与えられた位置をロボット先端が取るような各アーム4〜8の回転角を演算(逆変換)できるようになっており、また、各アーム4〜9の回転角が与えられると、各アーム4〜9の位置を演算(順変換)できるようにもなっている。
【0013】
ロボットアーム2の動作プログラムは図示しないティーチングペンダント(動作プログラム作成手段)により作成されてRAM15に記憶されている。CPU13は、このRAM15に記憶された動作プログラムに基づいて、ロボット先端の移動軌跡を演算し、そして、ロボット先端が移動開始位置から移動終了位置まで移動する間、当該ロボット先端の速度パターンが台形パターンや三角パターンなどの所定の速度パターンとなるように、サンプリングタイム毎のロボット先端の位置を演算する。なお、サンプリングタイムの周期は、例えば10msといったごく短い時間に定められている。サンプリングタイム毎のロボット先端の位置を求めると、CPU13は、各アーム4〜8のサンプリングタイム毎の回転角を求め記憶手段としてのRAM15に記憶させる。
【0014】
ロボットアーム2の動作制御中、CPU13は、サンプリングタイム毎に、回転位置検出回路17から与えられる各サーボモータ10の回転角から各アーム4〜9の回転角を演算し、各アーム4〜9の回転角からフランジ9の位置を演算して現在位置を検出する。そして、ロボット先端の現在位置の次の位置における各アーム4〜9の回転角をRAM15から取得し、各アーム4〜9の回転角から各サーボモータ10の回転角を演算して当該各回転角を各サーボモータ10の目標回転角として駆動回路16に出力する。なお、各サーボモータ10の回転角から各アーム4〜9の回転角を求めるには、各サーボモータ10の回転角を各減速装置11の減速比で除する。逆に、各アーム4〜9の回転角から各サーボモータ10の回転角を求めるには、各アーム4〜9の回転角に各減速装置の減速比を乗ずる。
【0015】
駆動回路16は、ロボット制御装置12から与えられた目標回転角と、回転位置検出回路17からフィードバックされた各サーボモータ10の回転角とを比較し、その差分に応じた電流を各サーボモータ10に供給する。これによりサーボモータ10が目標回転角に回転するように制御される。このような制御がサンプリングタイム毎に行われることによってロボット先端が動作プログラムにより定められた軌跡通りに動作するものである。
【0016】
さて、ロボットアーム2の上方、例えばロボット座標の垂直のZ座標軸の延長上に、侵入検出手段としてのCCDカメラ19が設置されている。このCCDカメラ19は、ロボットアーム2を含む所定の範囲、具体的にはロボットアーム2を中心、厳密にはロボット座標のZ座標軸を中心にした所定の範囲であって、ロボットアーム2の動作領域を包含する範囲を撮影領域(検出領域)としている。このCCDカメラ19の制御部(図示せず)は、所定の周期、例えばロボット1の制御装置(以下、単にロボット制御装置)12のサンプリングタイムの周期以下の周期で撮影画像を解析し、前回の撮影画像と今回の撮影画像を比較する。
【0017】
そして、今回の撮影画像で新たに撮影された物があったとき、これを検出領域内に侵入した物体と判断する。また、今回の撮影画像と前回の撮影画像の双方に撮影されている物であっても、位置が異なっている場合には、これを検出領域内に侵入した物体と判断する。CCDカメラ19の制御部はロボット制御装置12に接続され、物体を検出したとき、その物体の撮影画像上における位置をロボット制御装置12に与えるようになっている。この場合、CCDカメラ19による撮影画像上の位置は水平の2次元座標(カメラ座標)上の位置で与えられ、そのカメラ座標上の位置をロボット座標のXY座標上の位置に変換できるように、予めカメラ座標とロボット座標との間でキャリブレーションが取られている。なお、上記CCDカメラ19が検出する物体には、ワークを載置した搬送車や作業者などが含まれるが、代表的な物体は人であるから、以下では、物体を人と言い換えて説明する。
【0018】
ロボット制御装置12は、CCDカメラ19を人検出用のセンサとしてロボットアーム2が人と干渉しないように制御するための干渉回避装置を構成する。このロボット制御装置12の干渉回避装置としての機能の特徴は、人と干渉(接触)する恐れのある移動部分として監視の対象とする部分をロボット先端(フランジ9の先端)だけとするのではなく、他のアームの先端(関節など)をも含めて監視対象部を複数にしていること、監視対象部と人との距離が短くても、監視対象部の移動方向が人に近付く方向の成分を持っていなければ、その監視対象部は人に接触する恐れがないとして緊急停止などの干渉回避処置はとらないこと、にある。
【0019】
この実施形態では、監視対象部として、ロボット先端であるフランジ9の先端と、下アーム5の先端の2つの部分を定めている。下アーム5の先端は肘として機能し、フランジ9の先端の向きと逆向きの方向に移動することがあるので、人と接触する恐れの高い部分であるといえる。他の部分、例えばショルダ部4は、水平旋回する部分で位置の変化がなく、また、第1の上アーム6、第2の上アーム7、手首8は、下アーム5の先端やフランジ9の先端の移動を監視することによって人との接触を避け得る部分と考えられるので、監視対象部から外してある。
【0020】
次に、ロボット制御装置12による干渉回避を、図3のフローチャートをも参照しながら説明する。なお、図3では、下アーム5をJ2アームと称し、フランジ9をJ6アームと称している。
【0021】
CCDカメラ19の制御部は、常時、所定の短時間が経過する度に撮影画像を取得し、前回の撮影画像と今回の撮影画像とを比較して人が検出領域内に侵入したか否かを監視している(ステップS1)。そして、人が検出領域に侵入すると、CCDカメラ19は、人が検出領域に侵入したこと、および侵入した人の位置を検出し、人が検出領域内に侵入したこと、および人の位置をロボット制御装置12に通知する(ステップS1で「YES」)。
【0022】
ロボット制御装置12のCPU13は、人が検出領域内に侵入したことの通知を受けると、現在のサンプリングタイムにおける全ての回転関節軸、つまり全てのアーム4〜9の回転角をRAM15から取得し(ステップS2:アーム回転角取得手段)、座標変換の演算機能により、一方の監視対象部である下アーム5の位置を演算し、この下アーム5の位置(下アーム5の座標の位置)と下アーム5の長さと下アーム5の回転角とから当該下アーム5の先端のロボット座標上の位置を計算する(ステップS3:動作検出手段のうちの監視対象部位置検出手段)。なお、下アーム5の先端を第3軸Lc−3とすれば、下アーム5の先端の位置は第1の上アーム6の位置として求めることができる。
【0023】
下アーム5の先端の位置を求めると、CPU13は、下アーム5の先端と人との間の距離を計算する(ステップS4:離間距離取得手段)。このときの人までの距離は、人の位置がロボット座標のXY座標で表されるので、XY座標で規定される2次元座標での水平方向の距離となる。次に、CPU13は、下アーム5の先端の移動速度ベクトル(方向と速さ)を計算し(ステップS5:動作検出手段の速さ検出手段および移動方向検出手段)、下アーム5の先端の移動速度ベクトルの人方向への成分を計算する(ステップS6:人方向成分検出手段)。
【0024】
ここで、下アーム5の先端の移動速度ベクトル、つまり速さと方向は、今回のサンプリングタイムにおける下アーム5の先端の位置と次回のサンプリングタイムにおける下アーム5の先端の位置との差から移動距離を演算し、その移動距離をサンプリングタイムの時間間隔で除して速さを求める(動作検出手段のうちの速度検出手段)と共に、今回のサンプリングタイムでの下アーム5の先端の位置から次回のサンプリングタイムの先端の位置に向かうベクトルを求め、そのベクトルの方向を移動方向とする(動作検出手段のうちの移動方向検出手段)ものである。
【0025】
次いで、CPU13は、ステップS2で取得した回転角から他方の監視対象部であるフランジ9の先端の位置を計算し(ステップS7:動作検出手段のうちの監視対象部位置検出手段)、続いて、フランジ9の先端と人との間の距離を計算し(ステップS8:離間距離取得手段)、更にフランジ9の先端の移動速度ベクトルを下アーム5の先端の場合と同様にして計算し(ステップS9:動作検出手段の速度検出手段および移動方向検出手段)、次いで、フランジ9の先端の移動速度ベクトルの人方向への成分を計算する(ステップS10:人方向成分検出手段)。このときも、人までの距離は、水平方向の距離となる。
【0026】
下アーム5の先端およびフランジ9の先端の移動速度ベクトルについて、人方向の成分は次のようにして計算する。つまり、図4において、Rは監視対象部である下アーム5の先端またはフランジ9の先端を示し、Vは下アーム5の先端またはフランジ9の先端の移動速度ベクトルを示している。この移動速度ベクトルVの人方向への成分は、監視対象部Rと人とを結んでできる直線Lに移動速度ベクトルVの先端から垂線Hvを下ろし、この垂線Hvと直線Lとの交点mを求める。そして、監視対象部Rから交点mまでのベクトルVmを求めれば、このベクトルVmが移動速度ベクトルVの人方向の成分となる。この人方向の成分ベクトルVmの方向が人の方を向いているとき、移動速度ベクトルの人方向成分Vmが人に向かっていることとなる。
【0027】
上記のようにして監視対象部Rである下アーム5の先端およびフランジ9の先端の移動速度ベクトルの人方向線分を求めると、次に、CPU13は、下アーム5の先端およびフランジ9の先端の移動速度ベクトルの人方向成分が人に向かっているか否かを判断し(ステップS11:接近判断手段)、いずれの移動速度ベクトルの人方向成分も人に向かっていない場合(ステップS11で「NO」、ステップS12で「NO」)、以上のステップS1〜ステップS12の動作を繰り返す。
【0028】
つまり、監視対象部Rを通り、人と監視対象部Rとを結ぶ直線Lと直交する直線Lhを仮定したとき、移動速度ベクトルVが直線Lhと重なっていたり、当該直線Lhを境にして人とは反対側に移動速度ベクトルVが向かっていたりして、監視対象部Rが人から離れていくような場合には、人と監視対象部Rとの間の距離が短くとも、監視対象部Rと人とが接触する恐れはないので、そのままロボットアーム2の動作を継続させるものである。
【0029】
一方、CPU13は、下アーム5の先端およびフランジ9の先端の移動速度ベクトルの双方共に、人方向成分が人に向かっている場合には、下アーム5の先端およびフランジ9の先端の双方を危険対象部に設定する(ステップS11で「YES」、ステップS13:危険対象部設定手段、ステップS14で「YES」、ステップS15:危険対象部設定手段)。また、下アーム5の先端およびフランジ9の先端のうち、下アーム5の先端の移動速度ベクトルだけ、人方向成分が人に向かっている場合には、下アーム5の先端だけを危険対象部に設定する(ステップS11で「YES」、ステップS13、ステップS14で「NO」)。下アーム5の先端およびフランジ9の先端のうち、フランジ9の先端の移動速度ベクトルだけ、人方向成分が人に向かっている場合には、フランジ9の先端だけを危険対象部に設定する(ステップS11で「NO」、ステップS12で「YES」、ステップS15)。
【0030】
下アーム5の先端およびフランジ9の先端のうちの双方、或はいずれか一方が危険対象部に設定された場合、CPU13は、次のサンプリングタイムにおける危険対象部の移動速度を前述したと同様にして取得して、この移動速度で緊急停止を行ったとき、緊急停止の開始から停止までに移動する距離(制動距離)を計算し(ステップS16:制動距離取得手段)、この制動距離を基にして安全位置Sを求める(ステップS16)。なお、緊急停止とは、例えばサーボモータ10に最も大きな逆トルクを発生させて各アーム4〜9を急速に停止させる動作を言う。緊急停止手段はサーボモータ10に逆トルクを発生させるものに限らず、機械的ブレーキを作動させる等、他の手段であっても良い。
【0031】
ここで、上記安全位置Sは、現在の危険対象部の位置から速度ベクトル方向に、制動距離Bに所定距離bを足した距離だけ離れた位置に設定するものとする。そして、CPU13は、図4において、(D)で示す危険対象部の緊急停止時の安全位置Sから、現在の危険対象部(D)と人とを結ぶ直線Lに垂線を下ろし、当該垂線を危険安全境界線Iとする(ステップS17)。
【0032】
次に、CPU13は、危険安全境界線Iと直線Lとの交点nを求めて当該交点nと危険対象部(D)との距離Fを演算し、この距離Fを人と危険対象部(D)との間の距離(ステップS4で求めた人と下アーム5の先端との距離および/またはステップS8で求めた人とフランジ9の先端との距離)と比較して、人が危険安全境界線Iよりも危険対象部(D)側に存在するか否かを判断する(ステップS18:危険判断手段)。
【0033】
人が危険安全境界線I上または危険安全境界線Iよりも危険対象部(D)側にあれば(ステップS18で「YES」)、この時点でロボットアーム2を緊急停止させる(ステップS19)。すると、危険対象部(D)は、図4の場合には、安全位置Sの所定距離bだけ手前で停止する。また、図4とは異なるが、危険対象部(D)が人に向かって真っ直ぐ移動している場合の最悪時でも、危険対象部(D)が人から距離B+bだけ離れたところで緊急停止が開始されるので、ロボットアーム2は、危険対象部(D)が人に接触する直前で停止する。
【0034】
人が危険安全境界線I上または危険安全境界線Iよりも危険対象部(D)側になければ(ステップS18で「NO」)、未だ緊急停止動作させなくとも良いが、人が急にロボットアーム2に接近する方向に移動することも考えられなくもないので、このような場合の安全を確保するために、CPU13はロボットアーム2を減速させる(ステップS20)。このときの減速度は、危険対象部(D)と人との距離に応じたものとする。例えば、危険対象部と危険安全境界線までの距離に比例した減速度で減速させるようにする。このようにすることにより、人に近付けばそれだけ危険対象部(D)の速度が低くなるので、人との接触をより確実に防止でき、仮に接触したとしても、ごく軽く接するだけとなり、人へ与える衝撃をごく小さなものとすることができる。
【0035】
ステップS20で減速後、ステップS1に戻り以上の動作を繰り返す。そして、一旦減速しても、以後、人との距離が変わらなければ、ロボットアーム2はそれ以上減速することなく、そのときの速度で動作を継続する。また、危険対象部(D)と人との距離が増してゆけば、それに応じてロボットアーム2の動作速度は上昇する。
【0036】
このように本実施形態によれば、下アーム5の先端およびフランジ9の先端が人から離れる方向に移動する際には、人と下アーム5の先端および人とフランジ9の先端との間の距離が短くても(緊急停止動作時の制動距離以内であっても)、緊急停止動作をさせることなく、そのまま動作を継続させる。
【0037】
また、下アーム5の先端またはフランジ9の先端が人に近付く方向に移動する場合であっても、一定距離以内になったら、ロボットアーム2を停止させるのではなく、人と下アーム5の先端または人とフランジ9の先端との距離に応じて減速させるので、ロボットアーム2の動作をできる限り遅くせずに、人と接触することを防止できる。
【0038】
しかも、CCDカメラ19は、前回の撮影画像と今回の撮影画像を比較するだけで、新たに撮影された物、或は位置が異なる物を検出できるので、簡易な画像解析によって人の侵入を容易に検出することができ、高価格化を抑制することができる。
【0039】
なお、本発明は上記し且つ図面に示す実施例に限定されるものではなく、以下のような拡張或は変形が可能である。
ステップS19におけるロボットアーム2の減速率は、人と危険対象部との距離に比例した減速率としても良いし、段階的に減速率を変えるものであっても良い。
ロボットは垂直多関節型ロボットに限られず、水平多関節型ロボットであっても良い。
CCDカメラ19(撮像手段)は、物体の位置を3次元で取得できるものであっても良い。
侵入検出手段はCCDカメラ19に限られない。
干渉回避装置の制御部分は、ロボット制御装置12とは別のマイクロコンピュータで構成しても良い。
【符号の説明】
【0040】
図面中、2はロボットアーム、5は下アーム(監視対象部)9はフランジ(監視対象部)、10はサーbモータ、12は制御装置(干渉回避装置、制御手段、動作検出手段、接近判断手段、離間距離取得手段、制動距離取得手段、危険判断手段)、19はCCDカメラ(侵入検出手段)を示す。

【特許請求の範囲】
【請求項1】
複数の関節により複数のアームを連結して構成されたロボットアームを備え、前記ロボットアームを予め定められた動作プログラムに従って動作させるロボットの干渉回避装置において、
前記ロボットアームを含む所定の範囲を検出領域とし、当該検出領域内へ侵入した物体の位置を検出する侵入検出手段と、
前記複数のアームのうちから選択された所要のアームの先端を監視対象部として当該監視対象部の位置、移動方向および移動速度を、前記動作プログラムに基づいて検出する動作検出手段と、
前記各監視対象部の移動速度ベクトルが前記物体に向かう方向の速度成分を有しているか否かを判断する接近判断手段と、
前記各監視対象部のうち、前記移動速度ベクトルが前記物体に向かう方向の速度成分を有していると判断された監視対象部を危険対象部として当該危険対象部から前記物体までの距離を検出する離間距離取得手段と、
前記危険対象部の移動速度から当該危険対象部の緊急停止時における制動距離を取得する制動距離取得手段と、
前記危険対象部の現在位置から移動速度ベクトルの方向に前記制動距離を越えた距離だけ離れた安全位置を仮定し、この安全位置から前記危険対象部と前記物体とを結ぶ直線に下ろした垂線を危険安全境界線としたとき、前記物体が前記危険安全境界線よりも前記危険対象部に近い側に存在するか否かを判断する危険判断手段と、
前記危険判断手段の判断結果に応じて前記ロボットアームを制御する制御手段と
を具備し、
前記制御手段は、前記物体が前記危険安全境界線よりも前記危険対象部に近い側に存在すると判断されたとき、前記ロボットアームを緊急停止させ、前記物体が前記危険安全境界線よりも前記危険対象部に近い側に存在しないと判断されたとき、前記ロボットアームを前記危険対象部と前記物体との離間距離に応じて減速させることを特徴とするロボットの干渉回避装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate