(57)【要約】【課題】ロボット作業の安全性を高めると共に、工場などでの床スペースを有効活用でき、また、設備を簡易化できるようにする。【解決手段】ロボットのアーム及び手首に備えたワークやツールを含めたアーム占有領域と、アームが接触してはならない仮想安全防護柵と各軸の動作可能範囲をメモリー上に定義し、次回目標位置への動作指令を実行中にロボットを緊急停止した場合のロボット各軸の惰走角度を実際に測定した惰走量などから推定し、次回目標位置に加算することでロボットの惰走予測位置を求め、惰走予測位置におけるアーム占有領域と仮想安全防護柵とが接触しないか、またロボット各軸位置が動作可能範囲内であるかを確認し、異常が確認された場合に、直ちにロボットの動作を停止する制御を行なう  という手順で処理する。【選択図】図３
2011212831.tif 000002
【特許請求の範囲】
【請求項１】
ロボットのアーム占有領域と、前記アーム占有領域が接触してはならない仮想安全防護柵とが定義され、
演算周期毎に前記ロボットの先端の目標位置を演算して前記ロボットの各軸の動作指令を生成する時に、
次回の演算周期の前記ロボットの先端の目標位置に基づく前記アーム占有領域が前記仮想安全防護柵に接触しないかを確認し、
接触が確認された場合には、前記ロボットの動作を停止する制御を行ない、
接触が確認されなかった場合には、
次回の演算周期の前記ロボットの先端の目標位置への動作指令に基づく前記ロボットの動作中に前記ロボットを緊急停止した場合の前記ロボットの各軸の惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求める
ことを特徴とするロボットシステム。
【請求項２】
各軸の惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求め、各軸の前記惰走予測位置における前記アーム占有領域が前記仮想安全防護柵に接触しないかを推定し、
接触が確認された場合には、前記ロボットの動作を停止する制御を行なうことを特徴する請求項１記載のロボットシステム。
【請求項３】
前記ロボットの動作中に前記ロボットを緊急停止した場合の前記ロボット各軸の惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の前記推定した惰走角度を次回の演算周期の前記各軸の前記動作指令に加算することで前記ロボットの各軸の惰走予測位置を求め、
各軸の前記惰走予測位置が前記動作可能範囲を越えないか推定し、
各軸の前記惰走予測位置が前記動作可能範囲を越える場合には、前記ロボットの動作を停止する制御を行なうことを特徴とする請求項１記載のロボットシステム。
【請求項４】
前記ロボットの動作中に前記ロボットを緊急停止した場合の前記ロボット各軸の前記惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の前記実際の惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求め、
各軸の前記惰走予測位置における前記アーム占有領域が前記仮想安全防護柵に接触しないかを推定し、
接触すると判断された場合には、前記ロボットの動作を停止する制御を行なうことを特徴とする請求項１記載のロボットシステム。
【請求項５】
ロボットの各関節軸の動作可能範囲が定義され、
演算周期毎に前記ロボットの先端の目標位置を演算して前記ロボットの各軸の動作指令を生成する時に、
次回の各軸の動作指令値が前記動作可能範囲を越えないか推定し、
各軸の前記動作指令値が前記動作可能範囲を越える場合には、前記ロボットの動作を停止する制御を行ない、
各軸の前記動作指令値が前記動作可能範囲を越えない場合には、
次回の演算周期の前記ロボット先端の目標位置への動作指令に基づく前記ロボットの動作中に前記ロボットを緊急停止した場合の前記ロボット各軸の惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の前記惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求めることを特徴とするロボットシステム。
【請求項６】
各軸の前記惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求め、各軸の惰走予測位置が前記動作可能範囲を越えないか推定し、
各軸の惰走予測位置が前記動作可能範囲を越える場合には、前記ロボットの動作を停止する制御を行なうことを特徴とする請求項５記載のロボットシステム。
【請求項７】
複数の関節軸を備えたロボットと、前記ロボットの周辺に配置された安全防護柵をそなえ、前記ロボットは前記安全防護柵の中で作業し、前記作業を行う上で、前記ロボットが前記安全防護柵に接触するか否かの判断する制御装置を備え、前記制御装置により前記ロボットが前記安全防護柵に接触すると判断した場合には、作業を中止するロボットシステムを用いた製造方法。
【請求項８】
前記制御装置には、前記ロボットの各軸の惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求める機能を備えたことを特徴とする請求項７記載のロボットシステムを用いた製造方法。
【請求項９】
前記制御装置には、演算周期毎に前記ロボットの先端の目標位置を演算して前記ロボットの各軸の動作指令を生成する時に、
次回の各軸の動作指令値が前記動作可能範囲を越えないか推定することを特徴とする請求項７記載のロボットシステムを用いた製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット動作範囲を規制するロボットシステムに関する。  
【背景技術】
【０００２】
ロボット、特に産業用ロボットは自動車の組み立て工場などで広く用いられている。
動作に際し、ロボットアームおよびその手首（そして、手首に備えられたワークやツール）は、制御装置のメモリに記録された作業プログラム（ロボットを動作させ作業を実行するための手順が記述されたもの）により、周辺機器と干渉しないように、また無駄な動きにならないよう、所望の移動軌跡に沿って動作するようにされている。
また、ロボットアームや手首の動作により作業者などを危険に曝すような不測の事態が生じないように、ロボットの前記移動軌跡の外側には所定のマージンをおいて安全防護柵が配置されるのが通常である。
この安全防護柵は、ロボットの最大動作範囲の外部に設けられるものであるが、例えば、小物部品の搬送用途などでは、ロボットの作業のための動作範囲が狭いにもかかわらず、ロボットの最大動作領域の外部に安全防護柵を設けることは、ロボットの占有領域を広く確保することになる。そこで、ロボットの動作範囲をコンピュータによる制御で制限することも行われる。
そこで、ロボット動作を規制するための領域を「仮想安全柵」としてメモリー上に定義し、ワークやツールを含むロボットの一部を内包する３次元空間領域を少なくとも２箇所以上定義し、この３次元空間領域の軌跡計算上での予測位置と仮想安全柵との照合を行い、一部でも仮想安全柵に接する場合に、ロボットを停止させる制御が行われている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３２２２４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、軌跡計算上での予測位置が仮想安全柵を越える場合に、ロボットを停止させるものであって、軌跡計算上での予測位置を越えない場合であっても緊急停止などでロボットが停止するとロボットは少なからず惰走するため、実際にロボット停止する位置は、軌跡計算上の位置とは異なっている。したがって、軌跡計算上は仮想安全柵を越えない場合であってもロボットは仮想安全柵を越えてしまうという問題点があった。
また、従来ロボット各軸の範囲制限は、指令値や現在のモータ位置に対して制限されおり、緊急停止等によってロボットが制限範囲を超えてしまう。そのため、メカストッパなどの機械的な装置によって範囲制限を実現しており、設備コストが高くなるという問題点があった。
発明はこのような問題点に鑑みてなされたものであり、仮にロボットが緊急停止された場合に、各軸が惰走した位置が、仮想安全柵に接触する可能性がある場合に、その時点でロボットを停止させ、いかなる場合でもロボットが仮想安全柵に接触する事がないようにする。また、惰走を予測した各軸位置の各軸範囲を監視することによって、ロボット緊急停止した場合でもロボット各軸角度が制限範囲を越えることがないようにする。
これらによって、工場などの床面積や空間を無駄のない状態で有効に活用できるようにした、ロボット動作規制方法とその装置およびそのような装置を備えたロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記問題を解決するため、本発明は、次のようにしたのである。
請求項１に記載の発明は、ロボットのアーム占有領域と、前記アーム占有領域が接触してはならない仮想安全防護柵とが定義され、
演算周期毎に前記ロボットの先端の目標位置を演算して前記ロボットの各軸の動作指令を生成する時に、
次回の演算周期の前記ロボットの先端の目標位置に基づく前記アーム占有領域が前記仮想安全防護柵に接触しないかを確認し、
接触が確認された場合には、前記ロボットの動作を停止する制御を行ない、
接触が確認されなかった場合には、
次回の演算周期の前記ロボットの先端の目標位置への動作指令に基づく前記ロボットの動作中に前記ロボットを緊急停止した場合の前記ロボットの各軸の惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求めるものである。
また、請求項２に記載の発明は、各軸の惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求め、各軸の前記惰走予測位置における前記アーム占有領域が前記仮想安全防護柵に接触しないかを推定し、
接触が確認された場合には、前記ロボットの動作を停止する制御を行なうものである。
また、請求項３に記載の発明は、前記ロボットの動作中に前記ロボットを緊急停止した場合の前記ロボット各軸の惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の前記推定した惰走角度を次回の演算周期の前記各軸の前記動作指令に加算することで前記ロボットの各軸の惰走予測位置を求め、
各軸の前記惰走予測位置が前記動作可能範囲を越えないか推定し、
各軸の前記惰走予測位置が前記動作可能範囲を越える場合には、前記ロボットの動作を停止する制御を行なうものである。
また、請求項４に記載の発明は、前記ロボットの動作中に前記ロボットを緊急停止した場合の前記ロボット各軸の前記惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の前記実際の惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求め、
各軸の前記惰走予測位置における前記アーム占有領域が前記仮想安全防護柵に接触しないかを推定し、
接触すると判断された場合には、前記ロボットの動作を停止する制御を行なうものである。
また、請求項５に記載の発明は、ロボットの各関節軸の動作可能範囲が定義され、
演算周期毎に前記ロボットの先端の目標位置を演算して前記ロボットの各軸の動作指令を生成する時に、
次回の各軸の動作指令値が前記動作可能範囲を越えないか推定し、
各軸の前記動作指令値が前記動作可能範囲を越える場合には、前記ロボットの動作を停止する制御を行ない、
各軸の前記動作指令値が前記動作可能範囲を越えない場合には、
次回の演算周期の前記ロボット先端の目標位置への動作指令に基づく前記ロボットの動作中に前記ロボットを緊急停止した場合の前記ロボット各軸の惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の前記惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求めるものである。
また、請求項６に記載の発明は、各軸の前記惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求め、各軸の惰走予測位置が前記動作可能範囲を越えないか推定し、
各軸の惰走予測位置が前記動作可能範囲を越える場合には、前記ロボットの動作を停止する制御を行なうものである。
また、請求項７に記載の発明は、複数の関節軸を備えたロボットと、前記ロボットの周辺に配置された安全防護柵をそなえ、前記ロボットは前記安全防護柵の中で作業し、前記作業を行う上で、前記ロボットが前記安全防護柵に接触するか否かの判断する制御装置を備え、前記制御装置により前記ロボットが前記安全防護柵に接触すると判断した場合には、作業を中止するものである。
また、請求項８に記載の発明は、前記制御装置には、前記ロボットの各軸の惰走角度を予め測定した実際の惰走角度と機械的な遅れ時間から推定し、
各軸の惰走角度を次回の演算周期の前記各軸の動作指令に加算することで前記ロボットの各軸の惰走予測位置を求める機能を備えたものである。
また、請求項９に記載の発明は、前記制御装置には、演算周期毎に前記ロボットの先端の目標位置を演算して前記ロボットの各軸の動作指令を生成する時に、
次回の各軸の動作指令値が前記動作可能範囲を越えないか推定するものである。
【発明の効果】
【０００６】
本発明よると、仮にロボットが緊急停止された場合に、各軸が惰走した位置が、仮想安全柵に接触する可能性がある場合に、その時点でロボットを停止させ、いかなる場合でもロボットが仮想安全柵に接触する事がない。
また、惰走を予測した各軸位置の各軸範囲を監視することによって、ロボット緊急停止した場合でもロボット各軸角度が制限範囲を越えることがない。
これらによって、工場などの床面積や空間を無駄のない状態で有効に活用できるものである。
【図面の簡単な説明】
【０００７】
【図１】第1実施例のロボット動作規制方法と装置を備えたロボットシステムを示す図
【図２】第1実施例のロボット動作規制方法を示すブロック図
【図３】第1実施例のロボット動作規制方法と装置を備えたロボットの動作を示す図
【図４】第1実施例のロボット動作規制方法のフローチャート
【図５】第1実施例の動作可能領域を定義する方法を示す図
【図６】第２実施例のロボット動作規制方法を示すブロック図
【図７】第２実施例のロボット動作規制方法を示すフローチャート
【図８】第２実施例のロボット各軸動作規制方法と装置を備えたロボットシステムを示す図
【図９】第３実施例のロボット各軸動作規制方法を示すブロック図
【図１０】第３実施例のロボット各軸動作規制方法を示すフローチャート
【図１１】第４実施例のロボット各軸動作規制方法を示すブロック図
【図１２】第４実施例のロボット各軸動作規制方法を示すフローチャート
【発明を実施するための形態】
【０００８】
以下、本発明の具体的実施形態について、図に基づいて説明する。
【実施例１】
【０００９】
本発明の第1実施形態によるロボット動作規制方法と装置を備えたロボットシステムを図１を用いて説明する。工場のフロアに物理的な安全防護柵１０が設けてあり、その中にロボットが設置される。
この例で、ロボット１は基台２と３本のアーム３，４，５を備えている。アーム５には把持装置６を介してツール７が備えられる。ツール７として、アーク溶接用の溶接トーチや、スポット溶接用の溶接ガン、搬送用途におけるハンドなどが取り付けられる。アーム３，４，５はそれぞれ関節８で接続されている。ワーク９は被溶接体や搬送物などである。たとえば、安全防護柵１０の中では、ワーク９の溶接を行ったり、搬送物による組立作業を行うのである。
基台２には制御装置２０から必要な信号が送られ、所定の作業プログラムに従い、アーム３、４、５は所定の動作を行い、把持装置６またはツール７は所望の軌跡に沿った動作を行う。
制御装置２０には教示具２１が接続されていて、ロボット１への教示や作業プログラムの書き換えなどを行う。
ロボットを導入し、設置して稼動に先立って、ロボット１の仮想安全防護柵５０を設定する。この仮想安全防護柵５０の設定は、設置のときのほかに、変更を要する際に随時行われる。仮想安全防護柵５０は、多角柱の空間として定義され設定される。設定は教示具２１を用いて、多角柱の頂点の座標値を数値入力するか、あるいは教示具２１を操作してロボット１の制御点を動作し、多角柱の頂点の位置を指定することによって定義する。また、パソコン等で仮想安全防護柵５０を設定したデータを教示具２１から制御装置２０に取り込むことも可能である。定義された仮想安全防護柵５０は、制御装置２０のメモリー上に格納される。なお、仮想安全防護柵５０は、複数個の領域として定義することも可能であり、また、各仮想安全防護柵について有効や無効を設定できる。
また、ロボット１の各アーム３、４、５やツール７が空間中に占める領域を、アーム占有領域Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６として定義する。
まず、アーム３、４、５を、関節をつなぐ直線を軸心とする所定半径の円筒領域として定義し、それぞれＡ４、Ａ５、Ａ６とする。また、ロボット１の各関節８を内包する領域Ａ１、Ａ２は、関節８の軸上の１点を中心とする所定半径の球として定義する。関節８の軸上の１点は、通常は前記Ａ４、Ａ５、Ａ６の領域を定義する際に使用される「関節８をつなぐ直線」と、関節８の軸線との交点を使用する。さらに、アーム５の先端の把持装置６およびツール７を内包する領域を所定半径の球Ａ３として定義する。これらのアーム占有領域Ａないし、Ａ６の定義も、制御装置２０のメモリー上に格納される。
いずれのアーム占有領域も、おおよその半径を持つ球および円筒であればよく、より半径の大きな球および円筒として定義する場合には、それだけ検出範囲は広くなるが、上記した仮想安全防護柵５０はより広い領域として設定することが必要となり、スペース効率が低下する。あるいはアームの移動に制限を受けるようになる。
制御装置２０にて構成されているロボット制御の一実施例を図２にブロック図で示す。教示・操作部２０１は、教示具２１における操作者の操作で、作業プログラムの呼び出し・実行、および教示作業のためのロボット操作を行う。また、教示データ格納エリア２０２への教示データ（作業プログラムやその他作業に関連する情報）や、パラメータ格納エリア２０３への各種パラメータ設定なども行う。
パラメータ格納エリア２０３には、補間演算のために必要なアーム各部の寸法や、ロボット軸動作のために必要な減速比やモータ定数などの関節軸の仕様、および各軸アーム占有領域Ａ１ないしＡ６の半径及び仮想安全防護柵５０を定義するための座標値等も格納される。
操作者が作業プログラムの呼び出し・実行、または教示作業のためのロボット操作を行うと、教示・操作部２０１は、動作指令生成部２０４に対して、ロボット動作指令要求を送る。動作指令生成部２０４は、ロボット動作指令要求に対し、作業プログラムで定められた補間周期毎に次回目標位置算出部２０６にて算出する。ここで求めた次回目標位置について、仮想安全防護柵接触監視部２０８にて、仮想安全防護柵に占有領域Ａ１ないしＡ６が接触するかどうかのチェックを行う。また、次回目標位置に動作している状態で緊急停止をかけられた場合に惰走して停止する位置（惰走予測位置）を、惰走予測位置算出部２０７によって算出し、求められた惰走予測位置について、仮想安全防護柵接触監視部２０８にて仮想安全防護柵に占有領域Ａ１ないしＡ６が接触するかどうかのチェックを行う。次回目標位置算出部２０６は、算出した位置へ動作するためのロボット各軸の指令値を、駆動部２０５へ送る。しかし、仮想安全防護柵接触監視部２０８において、仮想安全防護柵との接触が検知された場合は、停止要求が駆動部２０５へ送られる。
駆動部２０５は、ロボット１の各軸を、動作指令生成部２０４から送られた指令値に動作させるが、停止要求を入信すると、ロボット１の動作を行わず、停止させる。
なお、ロボットの惰走量算出に必要な惰走量情報についても教示データ格納エリア２０３に格納される。
本発明の実施形態の基本的な考え方について図３を用いてロボット動作を説明する。
ロボット１は、現在位置３０１から次回目標位置３０２へ移動しようとしている。ここで、ロボット１に緊急停止をかけると、それぞれの軸はそのときの負荷状況に応じてわずかなりとも惰走して停止する。各軸について惰走角度を予測して、次回目標位置に加算すること、惰走予測位置３０３を求めることができる。図３(b)において、θs1は、現在位置３０１における第１軸の３０４の角度、θe1は、次回目標位置３０２における第１軸の３０４の角度を表している、θd1は、次回目標位置３０２の姿勢における負荷状況に応じて緊急停止した場合の惰走角度を表している。ここで、θe1+θd1を算出することにより、惰走予測位置３０３を求めることができる。惰走予測位置３０３において、アーム占有領域を考慮し、これが仮想安全防護柵５０に接触する場合には、ロボット１を次回目標位置３０２へ動作させるよりも先に、ロボット１を停止させることで、惰走しても仮想安全防護柵５０に接触することを回避できる。
動作指令生成部２０４において、仮想安全防護柵に干渉しないように制限されたロボットの動作を実現するためのフローチャートについて図４を用いて説明する。図２から図４を用いて本発明の方法について順を追って説明する。
ここでは、軸数がｎ個であるロボットについて説明する。基本的には、各ステップにおいて、第１軸から第ｎ軸について同様の処理を繰り返す。各軸の軸番号をあらわす添え字として、iを用いる。
[Ｓ０１]
ステップＳ０１では、次回目標位置算出部の２０６において、演算周期毎の次回目標位置（図３の３０２）を算出する。この次回目標位置とは、ロボット各軸の角度まで求められたものを指す。続いてステップＳ０２に進む
[Ｓ０２]
ステップＳ０２では、ステップＳ０１で求めた次回目標位置において、アーム占有領域Ａ１ないしＡ６が、仮想安全防護柵に接触していないかどうかのチェックを行う。このチェックは、仮想安全防護柵接触監視部２０８において行われる。
ここでの接触監視の具体的な方法については、さまざまな方法があるが、ここでは、仮想安全防護柵の多角柱を構成する線分と、ロボットやツールを内包する球や円筒との接触を監視する方法を使用するものとする。仮想安全防護柵５０は、図５に示す線分５１から線分５７で構成される多角形５８に高さを持たせたものとし、各線分５１から５７とアーム各部との距離を求め、干渉状態にあるかどうかを判断する方法を用いるものである。
なお、仮想安全防護柵５０が、複数個の領域で定義されている場合、監視有効が指定されている全ての仮想安全防護柵について同様のチェックを行い、ひとつでも接触している場合には、「接触する」と判定する。
ここで、「接触する」と判定された場合は、ステップ０９に進み、動力を切断する。そうでなければ、ステップＳ０３に進む。
[Ｓ０３]
ステップＳ０３では、現在位置と次回目標位置の差分と、演算周期時間tから、ロボット各軸の速度ωiを求める。この速度算出は、惰走予測位置算出部２０７にて行われる。例えば、図３における第１軸の速度ω1は、次式で求められる。
【００１０】
【数１】
2011212831.tif 000003
【００１１】
ここでθs1とθe1は、図３において説明した値が用いられる。
[Ｓ０４]
ステップＳ０４では、惰走予測位置算出部２０７において、次回目標位置におけるロボット各軸の惰走量を算出する。ロボットの惰走量は、アームの質量や動作速度、または使用している減速機やブレーキの種類によって変化する。そこで、予め実際のロボットシステムを使用して、少なくとも最大負荷を把持し最大負荷姿勢で、各軸最大速度ωiMAXでロボットを緊急停止させた場合の実機惰走量θDiMAXを測定しておき、その情報をパラメータ格納エリア２０３に記憶する。
各軸の速度ωiと実機惰走量θDiMAXから、以下の式にて第１軸の速度ω1における可変惰走角度θds1を算出する。
【００１２】
【数２】
2011212831.tif 000004
【００１３】
また、ロボット停止までにリレーなどの遅れ時間がある場合には、固定遅れ時間tdと各軸速度ωiから以下の式で固定遅れによる固定遅れ惰走量を計算する。
【００１４】
【数３】
2011212831.tif 000005
【００１５】
よって、惰走予測量θd1は、可変惰走量θds1と固定遅れ惰走量θdf1を加算することによって求まる。
【００１６】
【数４】
2011212831.tif 000006
【００１７】
[Ｓ０５]
ステップＳ０５では、ステップ０４で求めた、各軸の惰走角度を現在位置に加算することで、「各軸惰走予測角度」を算出する。
[Ｓ０６]
ステップＳ０６では、ステップＳ０５で計算された、「各軸惰走予測角度」を使用して順変換を行うことによって「惰走予測位置」を算出する。つまりここで求めた惰走予測位置は、次回目標位置にて、ロボット１に緊急停止がかけられた場合にロボット１が行き着くと予想される位置である。
[Ｓ０７]
ステップＳ０７では、惰走予測位置３０３が、仮想安全防護柵に接触するかどうかのチェックを行う。チェック方法は、ステップＳ０２と同様であり、このチェックは仮想安全防護柵接触監視部２０８において行われる。
ここで「接触する」と判断された場合には、ステップＳ０９に進み、動力を停止する。そうでなければステップＳ０８に進む。
[Ｓ０８]
ステップＳ０８では、次回目標位置算出部２０６が算出した次回目標位置に動作するための動作指令を駆動部２０５へ出力し、ロボット１を動作させる。
[Ｓ０９]
ステップＳ０９では、仮想安全防護柵接触監視部２０８が、駆動部２０５に対して、停止要求を送る。この停止要求で駆動部２０５はロボット１の動作を停止させる。また、停止理由をメッセージとして教示具２１にディスプレイに表示する。
このような手順を取ることにより、仮に緊急停止が起こって、ロボット１が惰走したとしても、ロボット１が仮想安全防護柵に接触または超えることがなくなる。
【実施例２】
【００１８】
実施例１におけるロボット動作規制方法は、ロボットの制御を行う制御プログラムで構成されるが、安全性及び信頼性がより高められるために、仮想安全防護柵への接触を監視して、接触時にロボット動作を停止させる制御を行うための装置を、独立させて設けるものである。
実施例２の構成として図６を用いて、前記の監視及び停止制御を行う装置を独立させた場合の実施形態を説明する。
図６は、図２のシステムに対し、動作領域監視装置６０１を追加した構成となっている。動作領域監視装置６０１は、駆動部２０５より、定められた監視周期毎に各軸モータ位置６０５から、ロボットの現在位置（ワーク又はツールの位置、）を求め、このロボットの現在位置に対し、仮想安全防護柵接触監視部５０４にて、仮想安全防護柵への接触をチェックする。また、現在位置検出部６０２で読み取ったモータ位置６０５情報を元に、惰走予測位置算出部６０３において、この時点で緊急停止をかけられた場合に惰走して停止する位置を算出する。この惰走予測位置に対し、仮想安全防護柵接触監視部６０４にて、仮想安全防護柵への接触をチェックする。
仮想安全防護柵接触監視部６０４は、仮想安全防護柵との接触を検知すると、駆動部２０５に対して、例えば駆動電源遮断信号などの緊急停止指令６０６を出力する。
図７は、図６のシステム構成において、仮想安全防護柵に干渉しないようにロボットの動作を制限することを実現するためのフローチャートである。図６および図７を用いて実施例２の方法について順を追って説明する。
[Ｓ１０１]
ステップＳ１０１で、現在位置検出部６０２にてロボットの各軸のモータ位置６０５を読み込む、次に読み込んだ各モータ位置６０５からロボットの現在位置を求める。以降で行う処理のために、各軸モータの現在位置（現在位置）は、前回読み込んだ前回の位置とともに記憶しておく。続いてステップＳ１０２に進む。
[Ｓ１０２]
ステップＳ１０２では、仮想安全防護柵接触監視部６０４にて、ステップＳ１０１で求めたロボットの現在位置において、図１に示すアーム占有領域Ａ１ないしＡ６が、仮想安全防護柵５０に接触していないかどうかのチェックを行う。具体的な接触監視の方法は、実施例１の図４のフローチャートのステップＳ０２で行っていたのと同様の方法が適用できる。ここで「接触する」と判断された場合は、ステップＳ１０８に進み、動力を遮断する。
[Ｓ１０３]
ステップＳ１０３では、各軸のモータの前回位置と現在位置の差分と、監視周期時間から、ロボットの各軸速度ωiを求める。iは各軸の軸番号をあらわす添字である。続いてステップＳ１０４に進む
[Ｓ１０４]
ステップＳ１０４では、各軸モータの現在位置からロボットに緊急停止した場合の、各軸惰走角度を計算する。これらの算出は、惰走予測位置算出部６０３にて行われる。算出方法は、実施例１の図４のステップＳ０４と同じである。続いてステップＳ１０５に進む。
[Ｓ１０５]
ステップＳ１０５では、各軸モータの現在位置に、ステップＳ１０４で求めた各軸の惰走角度を加算して、「惰走予測角度」を算出する。これらの算出は、惰走予測位置算出部６０３にて行われる。算出方法は、実施例１の図４のステップＳ０５と同じである。続いてステップＳ１０６に進む
[Ｓ１０６]
ステップＳ１０６では、ステップＳ１０５で計算された、「各軸惰走予測角度」を使用して順変換を行うことによって「惰走予測位置」を算出する。つまりここで求めた惰走予測位置は、次回目標位置にて、ロボット１に緊急停止がかけられた場合にロボット１が行き着くと予想される位置である。
[Ｓ１０７]
ステップＳ１０７では、惰走予測位置が、仮想安全防護柵に侵入するかどうかのチェックを行う。チェックの方法は、ステップＳ１０２と同じである。ここで「接触する」と判断された場合には、ステップ１０８に進み、動力を遮断する。。そうでなければ、今回の監視周期における監視処理は終了する。
[Ｓ１０８]
ステップＳ１０８では、駆動部２０５に対して、緊急停止を要求する。このような構成及び手順をとることにより、仮に動作指令生成部が故障して、ロボットに以上な指令が送信された場合でも、惰走位置が仮想安全防護柵に入り込まないうちにロボットを停止させることができる。
【実施例３】
【００１９】
実施例１、実施例２に記載したロボット動作規制方法は、惰走量を予測して、ロボットが仮想的な安全防護柵外へ接触することを防ぐものである。この考え方は、ロボット各軸の範囲規制にも適用できる。
【００２０】
本発明の第３の実施形態によるロボット動作規制方法と装置方法を備えたロボットのシステムを図８を用いて説明する。一般的なロボットの各軸には、メカストッパなどの機械的安全装置が取り付けられ、ロボットの各軸の動作を制限している。これに対し、メカストッパの代替として、各軸動作可能範囲６０を定義し、監視することでメカストッパの削減が可能となる。
本発明の第３の実施形態の他の構成として図９に示し、前記の監視及び停止制御を行う装置において各軸の動作規制行う場合の実施形態を説明する図である。
図９は、図２のシステムに対し、各軸動作範囲規制監視部９０１を追加した構成となっている。
次回目標位置算出部２０６にて算出する。ここで求めた次回目標位置について、各軸動作範囲規制監視部９０１にて、各軸動作可能範囲６０を超えて動作するかどうかのチェックを行う。また、次回目標位置に動作している状態で緊急停止をかけられた場合には、惰走して停止する各軸角度（惰走予測角度）を、惰走予測位置算出部２０７によって算出し、求められた惰走予測位置について、各軸動作範囲規制監視部９０１にて各軸動作可能範囲６０を超えて動作するかどうかのチェックを行う。次回目標位置算出部２０６は、算出した位置へ動作するためのロボット各軸の指令値を、駆動部２０５へ送る、しかし、各軸動作範囲規制監視部９０１において、各軸動作可能範囲６０を超えて動作することが検知された場合は、停止要求が駆動部２０５へ送られる。
駆動部２０５は、ロボット１の各軸を、動作指令生成部２０４から送られた指令値に動作させるが、停止要求を入信すると、ロボット１の動作を行わず、駆動電源を遮断して停止させる。
なお、ロボットの各軸動作可能範囲６０についても教示データ格納エリア２０３に格納される。
ロボット１の各軸動作可能範囲６０は、ロボットを導入し、設置して稼動に先立って設定する。この各軸動作可能範囲６０の設定は、設置のときのほかに、変更を要する際に随時行われる。各軸動作可能範囲６０は、各軸の最大動作角度と最小動作角度として定義され設定される。設定は教示具２１を用いて、各軸動作可能範囲６０を数値入力するか、あるいは教示具２１を操作してロボット１の制御点を動作し、各軸の現在角度を指定することによって定義する。また、パソコン等で各軸動作可能範囲６０を設定したデータを教示具２１から制御装置２０に取り込むことも可能である。定義された各軸動作可能範囲６０は、制御装置２０のメモリー上に格納される。なお、各軸動作可能範囲６０は、複数種類を定義することも可能である。
図１０は、図９のシステム構成において、各軸動作可能範囲を超えることがないようにロボットの動作を制限することを実現するためのフローチャートである。図９および図１０を用いて実施例３の方法について順を追って説明する。
【００２１】
[Ｓ２０１]
ステップＳ２０１では、次回目標位置算出部の２０６において、演算周期毎の次回目標位置（図３の３０２）を算出する。この次回目標位置とは、ロボット各軸の角度まで求められたものを指す。続いてステップＳ２０２に進む
[Ｓ２０２]
ステップＳ２０２では、ステップＳ２０１で求めた次回目標位置において、各軸現在位置が、各軸動作可能範囲の範囲内であるかのチェックを行う。このチェックは各軸動作範囲規制監視部９０１にて行われる。現在位置が各軸動作可能範囲最大値よりも大きい、もしくは最小値よりも小さければ範囲異常と判断する。範囲異常と判断した場合には、ステップ２０８に進み、動力を遮断する。そうでなければステップＳ２０３に進む
なお、各軸動作可能範囲が、複数個の領域で定義されている場合、監視有効とされている各軸動作可能範囲について同様のチェックを行い、ひとつでも接触している場合には、「範囲異常」と判定する。
ここで、「範囲異常」と判定された場合は、ステップ２０８に進み、動力を遮断する。そうでなければ、ステップＳ２０３に進む。
[Ｓ２０３]
ステップＳ２０３では、現在位置と次回目標位置の差分と、演算周期時間tから、ロボット各軸の速度ωiを求める。この速度算出方法は実施例１のステップＳ０３と同じである。
[Ｓ２０４]
ステップＳ２０４では、惰走予測位置算出部２０７において、次回目標位置におけるロボット各軸の惰走量を算出する。算出方法は、実施例１のステップＳ０４と同じである。
[Ｓ２０５]
ステップＳ２０５では、ステップＳ２０４で求めた各軸の惰走角度を現在位置に加算することで、「各軸惰走予測角度」を算出する。
[Ｓ２０６]
ステップＳ２０６では、「各軸惰走予測角度」が、各軸動作可能範囲の範囲内であるかのチェックを行う。チェック方法は、ステップＳ２０２と同様であり、このチェックはこのチェックは各軸動作範囲規制監視部９０１にて行われる。
ここで「範囲異常」と判断された場合には、ステップＳ２０８に進み、動力を遮断する。そうでなければステップＳ２０７に進む。
[Ｓ２０７]
ステップＳ２０７では、次回目標位置算出部２０６が算出した次回目標位置に動作するための動作指令を駆動部２０５へ出力し、ロボット１を動作させる。
[Ｓ２０８]
ステップＳ２０８では、各軸動作範囲規制監視部９０１が、駆動部２０５に対して、停止要求を送る。この停止要求で駆動部２０５はロボット１の動作を停止させる。また、停止理由をメッセージとして教示具２１にディスプレイに表示する。
このような手順を取ることにより、仮に緊急停止が起こって、ロボット１が惰走したとしても、ロボット１が各軸動作可能範囲を超えることがなくなる。
【実施例４】
【００２２】
実施例３のロボット動作規制方法は、ロボットの制御を行う制御プログラムで構成されるが、安全性及び信頼性を高めるために、仮想安全防護柵への接触を監視して、接触時にロボット動作を停止させる制御を行うための装置を、独立させて設けることもできる。
実施例４の構成として図１１に示し、前記の監視及び停止制御を行う装置において各軸の動作規制行う場合の実施形態を説明する。
図１１は、図６のシステムに対し、各軸動作範囲規制監視部１１０１を追加した構成となっている。
動作領域監視装置６０１は、駆動部２０５より、定められた監視周期毎に各軸モータ位置６０５から、ロボットの現在位置（ワーク又はツールの位置、）を求め、このロボットの現在位置に対し、各軸動作範囲規制監視部１１０１にて、各軸動作可能範囲を超えて動作するかどうかのチェックを行う。また、現在位置検出部６０２で読み取ったモータ位置６０５情報を元に、惰走予測位置算出部６０３において、この時点で緊急停止をかけられた場合に惰走して停止する各軸角度を算出する。この惰走予測角度に対し、各軸動作範囲規制監視部１１０１にて、各軸動作可能範囲を超えて動作するかどうかのチェックを行う。
各軸動作範囲規制監視部１１０１は、各軸の動作範囲異常を検知すると、駆動部２０５に対して、例えば駆動電源遮断信号などの緊急停止指令６０６を出力する。
図１２は、図１１のシステム構成において、各軸動作可能範囲を超えることがないようにロボットの動作を制限することを実現するためのフローチャートである。この図を用いて本発明の方法を順を追って説明する。
【００２３】
[Ｓ３０１]
ステップＳ３０１で、現在位置検出部６０２にてロボットの各軸のモータ位置６０５を読み込む、次に読み込んだ各モータ位置６０５からロボットの現在位置を求める。以降で行う処理のために、各軸モータの現在位置（現在位置）は、前回読み込んだ前回の位置とともに記憶しておく。続いてステップＳ３０２に進む。
【００２４】
[Ｓ３０２]
ステップＳ３０２では、各軸動作範囲監視部１１０１にて、ステップＳ３０１で求めたロボットの現在位置において、各軸現在位置が、各軸動作可能範囲の範囲内であるかのチェックを行う。現在位置が各軸動作可能範囲最大値よりも大きい、もしくは最小値よりも小さければ「範囲異常」と判断する。範囲異常と判断した場合には、ステップ３０７に進み、動力を遮断する。そうでなければステップＳ３０３に進む。
[Ｓ３０３]
ステップＳ３０３では、各軸のモータの前回位置と現在位置の差分と、監視周期時間から、ロボットの各軸速度ωiを求める。iは各軸の軸番号をあらわす添字である。続いてステップＳ３０４に進む。
[Ｓ３０４]
ステップＳ３０４では、各軸モータの現在位置からロボットに緊急停止を変えた場合の、各軸惰走角度を計算する。これらの算出は、惰走予測位置算出部６０３にて行われる。算出方法は、図４のステップＳ０４と同じである。続いてステップＳ３０５に進む。
[Ｓ３０５]
ステップＳ３０５では、各軸モータの現在位置に、ステップＳ３０４で求めた各軸の惰走角度を加算した、「各軸惰走予測角度」を計算する。これらの算出は、惰走予測位置算出部６０３にて行われる。算出方法は、図４のステップＳ０５と同じである。続いてステップＳ３０６に進む。
[Ｓ３０６]
ステップＳ３０６では、「各軸惰走予測角度」が、各軸動作可能範囲の範囲内であるかのチェックを行う。チェックの方法は、ステップＳ３０２と同じである。ここで「範囲異常」と判断された場合には、ステップ３０７に進み、動力を遮断する。そうでなければ、今回の監視周期における監視処理は終了する。
[Ｓ３０７]
ステップＳ３０７では、駆動部２０５に対して、緊急停止を要求する。このような構成及び手順をとることにより、仮に動作指令生成部が故障して、ロボットに異常な指令が送信された場合でも、惰走位置が各軸動作可能範囲を超えて動作することなくロボットを停止させることができる。
本実施形態においては、安全柵の変わりになる動作監視について説明してきたが、一例に過ぎず、ロボットが生活空間に移動しながら動作する場合にも実施形態の考え方は適用でき、産業用ロボットに限定されるものではない。
【符号の説明】
【００２５】
１  ロボット
２  本体
３、４、５  アーム
６  把持装置
７  ツール
８  関節
９  ワーク
１０  物理的な安全防護柵
２０  制御装置
２１  教示具
５０  仮想安全防護柵
５１  仮想安全防護柵を構成する線分(1)
５２  仮想安全防護柵を構成する線分(2)
５３  仮想安全防護柵を構成する線分(3)
５４  仮想安全防護柵を構成する線分(4)
５５  仮想安全防護柵を構成する線分(5)
５６  仮想安全防護柵を構成する線分(6)
５７  仮想安全防護柵を構成する線分(7)
５８  仮想安全防護柵を構成する線分(8)
５９  仮想安全防護柵を構成する多角形
６０  各軸動作可能範囲
２０１  教示・操作部
２０２  教示データ格納エリア
２０３  パラメータ格納エリア
２０４  動作指令生成部
２０５  駆動部
２０６  次回目標位置算出部
２０７、６０３  惰走予測位置算出部
２０８、６０４  仮想安全柵接触監視部
３０１  現在位置
３０２  次回目標位置
３０３  惰走予測位置
３０４  第１軸
６０１  動作領域監視装置
６０２  現在位置検出部
６０４  動作領域監視装置
６０５  モータ位置
６０６  緊急停止指令
９０１、１１０１  各軸動作範囲規制監視部
Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６  アーム占有領域
【図１】
2011212831.tif 000007
【図２】
2011212831.tif 000008
【図３】
2011212831.tif 000009
【図４】
2011212831.tif 000010
【図５】
2011212831.tif 000011
【図６】
2011212831.tif 000012
【図７】
2011212831.tif 000013
【図８】
2011212831.tif 000014
【図９】
2011212831.tif 000015
【図１０】
2011212831.tif 000016
【図１１】
2011212831.tif 000017
【図１２】
2011212831.tif 000018