(58)【調査した分野】(Int.Cl.,DB名)
ロボットおよび前記ロボットに取り付けられた作業ツールの3次元モデルを同一の空間に配置して、前記ロボットのシミュレーションを行うシミュレーション装置であって、
前記作業ツールの重量を取得する重量取得部と、
前記ロボットの動作プログラムを実行したときに、前記ロボットの動作経路の微小区間ごとに設定された設定点における前記ロボットの各駆動軸の位置を取得する位置取得部と、
前記設定点における各駆動軸の動作速度を取得する速度取得部と、
前記ロボットの各駆動軸の位置、各駆動軸の動作速度、および前記作業ツールの重量に基づいて、それぞれの前記設定点において前記ロボットの非常停止を実施したときに、各駆動軸において惰性にて動作した後に停止する停止位置を推定し、更に、非常停止を実施した位置から前記停止位置までの動作経路を推定して、非常停止を実施した位置から前記停止位置までの動作経路上に新たな点を追加する停止位置推定部と、
前記停止位置にて停止した時の前記ロボットおよび前記作業ツールの3次元モデルと、前記新たな点における前記ロボットおよび前記作業ツールの3次元モデルとを生成し、前記停止位置にて停止した時の3次元モデルおよび前記新たな点における3次元モデルをつなぎ合わせることにより前記ロボットおよび前記作業ツールの3次元の掃引空間を算出する掃引空間算出部と、を備えることを特徴とする、シミュレーション装置。
前記ロボットに予め定められた重量の前記作業ツールを取り付けて、1つの駆動軸において予め定められた方向および予め定められた動作速度にて前記ロボットを駆動している期間中に前記ロボットの非常停止を実施した時に、非常停止を実施してから前記ロボットが停止するまでの駆動軸における変化量を取得する変化量取得部を備え、
前記変化量取得部は、前記作業ツールの重量および駆動軸の動作速度を変化させて繰り返して前記ロボットの非常停止を実施することにより、前記作業ツールの重量および駆動軸の動作速度に対する駆動軸における変化量の関係を取得し、
前記停止位置推定部は、前記作業ツールの重量および駆動軸の動作速度に対する駆動軸における変化量の関係に基づいて駆動軸の停止位置を推定する、請求項1に記載のシミュレーション装置。
【発明を実施するための形態】
【0014】
図1から
図11を参照して、実施の形態におけるシミュレーション装置について説明する。本実施の形態のシミュレーション装置は、ロボットのシミュレーションを実施することにより、ロボットが非常停止を実施した場合の掃引空間を算出する。
【0015】
図1は、本実施の形態においてシミュレーションを行う第1のロボットシステムのロボットの斜視図である。ロボットシステムは、予め定められた作業を行う作業ツール17と、作業ツール17の位置および姿勢を変更するロボット1とを備える。本実施の形態のロボット1は、アーム12a,12b、手首部16、および複数の関節部13を含む多関節ロボットである。ロボット1には、電源ボックスおよびケーブル等の構成部材が含まれる。
【0016】
本実施の形態のロボット1は、6個の駆動軸を備える。旋回部11は、矢印91に示す様に第1の駆動軸に基づいて回転する。アーム12a,12bは、矢印92〜94に示す様に、第2の駆動軸、第3の駆動軸および第4の駆動軸に基づいて回転する。手首部16は、矢印95に示す様に、第5の駆動軸に基づいて回転する。作業ツール17は、矢印96に示す様に、第6の駆動軸に基づいて回転する。
【0017】
ロボット1は、それぞれの関節部13にて構成部材を駆動するロボット駆動装置を含む。ロボット駆動装置は、関節部13にて構成部材を駆動するモータ14を含む。モータ14が駆動することにより、アーム12a,12bおよび手首部16を関節部13にて所望の方向に向けることができる。ロボット1は、床面20に固定されているベース部19と、ベース部19に対して回転する旋回部11とを備える。ロボット駆動装置は、旋回部11を駆動するモータ14を含む。
【0018】
ロボット1に取り付けられた作業ツール17は、エンドエフェクタとも称される。作業ツール17は、ロボット1の手首部16に取り付けられている。本実施の形態の作業ツール17は、スポット溶接を行うための溶接ガンであるが、この形態に限られず、作業の内容に応じて任意の作業ツールをロボットに連結することができる。作業ツール17は、作業ツール17を駆動するためのツール駆動装置18を含む。本実施の形態のツール駆動装置18は、電極に電気を供給する電気回路を含む。
【0019】
図2に、本実施の形態におけるロボットシステムのブロック図を示す。
図1および
図2を参照して、ロボットシステムは、ロボット1を制御するロボット制御装置2を備える。ロボット制御装置2は、バスを介して互いに接続されたCPU(Central Processing Unit)、RAM(Random Access Memory)、およびROM(Read Only Memory)等を有する演算処理装置を含む。
【0020】
ロボット制御装置2は、ロボット1および作業ツール17の制御に関する情報を記憶する記憶部24を含む。ロボット制御装置2は、予め入力された動作プログラム25に基づいてロボット1を駆動することができる。動作プログラム25は、記憶部24に記憶される。
【0021】
ロボット制御装置2は、動作制御部21を含む。動作制御部21は、ロボット1および作業ツール17を駆動する動作指令を送出する。動作制御部21は、ロボット1を駆動するための動作指令をロボット駆動部22に送出する。ロボット駆動部22は、ロボット1のモータ14を駆動する電気回路を含む。ロボット駆動部22は、動作指令に基づいてアーム等を駆動するモータ14に電気を供給する。また、動作制御部21は、作業ツール17を駆動するための動作指令を作業ツール駆動部23に送出する。作業ツール駆動部23は、ツール駆動装置18を駆動する電気回路を含む。作業ツール駆動部23は、動作指令に基づいてツール駆動装置18に電気を供給する。
【0022】
ロボット1は、ロボット1の構成部材の状態を検出する状態検出器を備える。本実施の形態の状態検出器は、それぞれの駆動軸のモータ14に取り付けられた回転位置検出器15を含む。回転位置検出器15は、モータ14が駆動するときの回転位置を検出する。回転位置検出器15にて検出された回転位置の情報は、ロボット制御装置2に送信される。ロボット制御装置2は、それぞれの駆動軸の回転位置に基づいて回転速度を検出することができる。また、ロボット制御装置2は、それぞれのモータ14の回転位置に基づいて、ロボット1の構成部材の位置および姿勢を検出することができる。
【0023】
ロボットシステムは、作業者がロボット制御装置2に所定の情報を入力したり、作業の状態を表示したりする操作盤26を含む。本実施の形態の操作盤26には、作業者がロボット1を緊急に停止させるための非常停止ボタン27が配置されている。
【0024】
本実施の形態のロボット1は、予め定められた条件が成立すると、動作プログラム25に基づく動作の期間中に非常停止を実施するように形成されている。たとえば、作業員が非常停止ボタン27を押すことにより、ロボット制御装置2は、ロボット1の非常停止を実施する。または、動作制御部21がロボット1または作業ツール17の異常を検出した場合には、ロボット制御装置2は、ロボット1の非常停止を実施する。
【0025】
本実施の形態のロボット駆動装置は、それぞれの駆動軸における移動を停止させるブレーキを含む。ブレーキは、例えば、モータ14の出力シャフトの回転を停止させるように形成されている。本実施の形態のブレーキは、モータ14に取り付けられている。ブレーキは、ロボット制御装置2の動作制御部21により制御されている。
【0026】
動作制御部21は、非常停止を実施すべき非常停止信号を受信した場合には、ロボット1を即時に停止させる。非常停止の制御において、動作制御部21は、ロボット1の動作している駆動軸のモータ14に対して停止指令を送出する。すなわち、動作制御部21は、動作している駆動軸に対して零の移動指令を出力する。ロボット1のモータ14は、停止する。また、動作制御部21は、モータ14のブレーキを作動する。モータ14の出力シャフトがブレーキにより制動される。
【0027】
図3に、ロボットの非常停止を実施した時のロボットの動作を説明する概略図を示す。
図3は、ロボット1を上側から見たときの図である。
図3に示す例においては、第1の駆動軸の周りに旋回部11が回転した状態を示している。旋回部11が回転することにより、アーム12a,12bおよび作業ツール17も回転する。
【0028】
アーム12a,12bおよび作業ツール17は、初期の位置61aから矢印82に示すように移動する。そして、ロボット1の位置61bにて非常停止が実施されている。ロボット1の第1の駆動軸のモータ14への電気の供給が停止される。また、第1の駆動軸のモータ14のブレーキが作動する。ところが、ロボット1は、慣性のために、動作制御部21が停止指令を発信した時、すなわち、非常停止を実施した時の位置および姿勢では停止しない。ロボット1は、矢印83に示すように、惰性により移動を継続する。そして、ロボット1の位置61cにおいて、ロボット1は完全に停止する。
【0029】
本実施の形態においては、ロボット1の構成部材等の移動する部材が移動した空間を掃引空間と称する。掃引空間は、予め定められた部材が通過した領域に相当する。ロボット1の非常停止を実施した場合には、停止指令が発信された位置よりも更にロボット1が移動する。この例での掃引空間51は、矢印83に示す様にアーム12a,12b、手首部16および作業ツール17が通過した領域を含む。
【0030】
図4に、本実施の形態におけるロボットの非常停止を実施した時のロボットの他の動作を説明する概略図を示す。
図4は、ロボット1を上側から見た時の図である。
図4に示す例においては、第2の駆動軸の周りにアーム12aが移動している。ロボット1の初期の位置61aからアーム12bが外側に向かって移動すると共に、アーム12a,12bの位置および姿勢が変化している。そして、アーム12aが移動している期間中に非常停止が実施されている。ロボット1の非常停止は、位置61bにて実施されている。そして、ロボット1の惰性により、ロボット1の位置61cまでアーム12a,12bの位置および姿勢が変化している。この例での掃引空間52は、非常停止を実施した後にアーム12a,12b、手首部16および作業ツール17が通過した領域を含む。
【0031】
図2および
図3を参照して、ロボットが非常停止を実施したときの掃引空間51,52は、ロボット1の惰性による移動を含めた空間になる。掃引空間51,52は、初期の位置61aからロボット1が停止した位置61cまで、ロボット1が通過した領域により構成される。
【0032】
図1および
図2を参照して、本実施の形態におけるロボットシステムは、シミュレーション装置40を備える。シミュレーション装置40は、ロボット1および作業ツール17の3次元モデルを同一の空間に配置して、ロボット1のシミュレーションを実施する。
【0033】
シミュレーション装置40は、CPU等を含む演算処理装置にて構成されている。シミュレーション装置40は、ロボットシステムのシミュレーションに関する任意の情報を記憶する記憶部47を備える。シミュレーション装置40には、ロボット1および作業ツール17の3次元形状データ31が入力される。3次元形状データ31は、例えばCAD(Computer Aided Design)装置から出力されるデータを用いることができる。3次元形状データ31は、記憶部47に記憶される。シミュレーション装置40には、作業ツール17の重量を含む重量データ32が入力される。重量データ32は、記憶部47に記憶される。
【0034】
シミュレーション装置40は、ロボット1および作業ツール17等の移動する部材の3次元形状データを取得する形状取得部41を備える。シミュレーション装置40は、作業ツール17の重量を取得する重量取得部42を備える。また、シミュレーション装置40は、ロボット1のそれぞれの駆動軸の位置を取得する位置取得部43と、それぞれの駆動軸の動作速度を取得する速度取得部44とを備える。本実施の形態の位置取得部43は、全ての駆動軸の位置を取得することができる。また、速度取得部44は、全ての駆動軸の動作速度を取得することができる。更に、シミュレーション装置40は、ロボット1の非常停止を実施した時に、各駆動軸において惰性にて動作した後に停止する停止位置を推定する停止位置推定部45を備える。シミュレーション装置40は、各駆動軸の停止位置に基づいて、ロボット1および作業ツール17の3次元モデルの掃引空間を算出する掃引空間算出部46を備える。
【0035】
図5に、本実施の形態のシミュレーション装置における制御のフローチャートを示す。
図2および
図5を参照して、ステップ71において、形状取得部41は、ロボット1および作業ツール17の3次元形状データを記憶部47から取得する。ロボット1の3次元形状データには、ロボット1を構成する構成部材の形状データが含まれている。例えば、ロボット1の3次元形状データには、ロボット1を駆動することにより移動するアーム12a,12bおよび作業ツール17等の形状データが含まれている。ステップ72において、重量取得部42は、作業ツール17の重量を記憶部47から取得する。
【0036】
ステップ73において、位置取得部43は、ロボット1の動作経路上に設定された設定点におけるロボット1の各駆動軸の位置を取得する。ここで、動作経路は、たとえば、ツール先端点の経路を例示することができる。動作制御部21は、予め定められたロボットの制御周期(補間周期)ごとに動作指令を発信する。本実施の形態においては、制御周期ごとに指定される点を設定点にしている。動作経路には、微小区間ごとに設定点が設定される。なお、設定点は、微小時間ごとに設定しても、動作経路における微小距離ごとに設定しても構わない。
【0037】
ここでは、動作プログラムの実行に関して、実際にロボット1を駆動する例を説明する。ロボット制御装置2の動作制御部21は、動作プログラム25に基づいてロボット1および作業ツール17を駆動する。ロボット1は、予め定められた動作経路に沿うように位置および姿勢を変化する。
【0038】
回転位置検出器15は、ロボット1が駆動している期間中に、それぞれの駆動軸の位置を検出する。回転位置検出器15は、駆動軸における回転角度を検出する。回転位置検出器15は、設定点に対応するように、ロボット1の制御周期ごとに回転角度を検出する。回転位置検出器15は、駆動軸の回転角度をロボット制御装置2に送出する。本実施の形態では、全ての駆動軸において位置を検出している。
【0039】
位置取得部43は、ロボット制御装置2からそれぞれの駆動軸の回転角度を取得する。位置取得部43は、設定点に対応する制御周期ごとの駆動軸の回転角度を取得して、記憶部47に記憶する。このように、位置取得部43は、ロボット1の動作経路の微小区間ごとに設定された設定点に対応するロボットの各駆動軸の位置を取得する。
【0040】
なお、各駆動軸の位置の取得においては、例えば、シミュレーション装置が動作プログラムを実行するシミュレーションを実施し、位置取得部がシミュレーションの結果に基づいて、設定点におけるロボットの各駆動軸の位置を取得しても構わない。
【0041】
次に、ステップ74において、速度取得部44は、設定点におけるそれぞれの駆動軸の動作速度を取得する。速度取得部44は、互いに連続する設定点に対応する駆動軸の位置から回転した角度を算出し、算出した角度および制御周期に基づいて駆動軸の動作速度を算出することができる。または、回転位置検出器15が動作速度を算出する機能を有する場合がある。この場合には、回転位置検出器15から出力される動作速度は、ロボット制御装置2に送信される。速度取得部44は、ロボット制御装置2から駆動軸の動作速度を取得しても構わない。
【0042】
次に、ステップ75において、停止位置推定部45は、設定点においてロボットの非常停止を実施した場合に、それぞれの駆動軸の停止位置を推定する。ロボット1の構成部材は、非常停止を実施した後も惰性で移動する。本実施の形態においては、作業ツール17の重量および駆動軸の動作速度に対する駆動軸の惰性の変化量の関係を予め求めて、記憶部47に記憶しておく。そして、停止位置推定部45は、作業ツールの重量および駆動軸の動作速度に対する駆動軸の変化量の関係に基づいて、それぞれの駆動軸の停止位置を推定する。
【0043】
図2を参照して、シミュレーション装置40は、ロボット1の非常停止を実施してから完全にロボット1が停止するまでの駆動軸の変化量を取得する変化量取得部49を備える。
【0044】
図6に、1つの駆動軸においてロボットの非常停止を実施した時の駆動軸の変化量の表を示す。この表は、1つの駆動軸において、予め定められた方向および予め定められた動作速度にてロボット1を駆動している期間中に、非常停止を実施したときの駆動軸の変化量を示している。駆動軸の変化量は、非常停止を実施してから完全にロボット1が停止するまでの回転角度に相当する。
【0045】
駆動軸の変化量は、駆動軸の動作速度と作業ツールの重量との関数になる。非常停止を実施した後の駆動軸の変化量は、作業ツール17が重たくなるほど大きくなる。また、非常停止を実施した時の駆動軸の動作速度が大きいほど、駆動軸の変化量は大きくなる。
【0046】
本実施の形態においては、実際にロボット1を駆動することにより、
図6に示す駆動軸の変化量を求めている。作業者は、予め定められた重量の作業ツール17をロボット1に取り付ける。そして、作業者は、1つの駆動軸を特定駆動軸として選定する。作業者は、特定駆動軸において予め定められた方向および予め定められた動作速度にてロボット1を駆動する。そして、作業者は、ロボット1を駆動している期間中に非常停止を実施する。このときに、変化量取得部49は、非常停止を実施したときの特定駆動軸の位置と、ロボット1が停止したときの特定駆動軸の位置を検出する。変化量取得部49は、特定駆動軸の位置の差を特定駆動軸の変化量として取得することができる。
【0047】
例えば、作業者は、10kgの作業ツール17をロボット1に取り付ける。そして、選定した特定駆動軸において、速度が10deg/sになるようにロボット1を駆動する。そして、速度が10deg/sの時に非常停止を実施する。変化量取得部49は、非常停止を実施したときの回転位置検出器15の出力を検出する。また、変化量取得部49は、ロボット1が停止した時の回転位置検出器15の出力を検出する。変化量取得部49は、完全にロボット1が停止した時の回転角度から非常停止を実施したときの回転角度を減算することにより、5degの駆動軸の変化量を算出することができる。
【0048】
作業者は、ロボット1に取り付ける作業ツールの重量および駆動軸の動作速度を変更して、同様の測定を繰り返すことにより、特定駆動軸の動作速度および作業ツールの重量に対する特定駆動軸の変化量の関係を取得することができる。なお、作業者は、特定駆動軸の変化量を取得するためのロボット1の動作プログラムを予め作成し、この動作プログラムを用いてロボット1を駆動しても構わない。
【0049】
駆動軸の動作速度および作業ツールの重量に対する駆動軸の変化量の関係は、それぞれの駆動軸ごとに算出することができる。他の駆動軸においても上記と同様の測定を実施することにより、全ての駆動軸について、駆動軸の動作速度および作業ツールの重量に対する駆動軸の変化量の関係を取得することができる。例えば、本実施の形態におけるロボット1は、6個の駆動軸を有する。このために、作業者は、駆動軸ごとに、
図6に示すような表を6個作成しておくことができる。
【0050】
このように、変化量取得部49は、作業ツール17の重量および駆動軸の動作速度を変化させて繰り返してロボット1の非常停止を実施することにより、作業ツール17の重量および駆動軸における動作速度に対する駆動軸における変化量の関係を取得することができる。そして、この関係は、記憶部47に記憶しておくことができる。
【0051】
図2を参照して、停止位置推定部45は、
図6に示す変化量の関係を用いて、予め定められた設定点において、非常停止を実施したときの駆動軸における変化量を算出する。非常停止を実施したときの変化量の算出は、駆動軸ごとに実施することができる。
【0052】
作業ツールの重量および設定点における駆動軸の動作速度が予め取得した測定値と異なる場合に、停止位置推定部45は、複数の変化量を内挿したり外装したりすることにより変化量を算出することができる。例えば、設定点における値の両側の測定値を選定した後に、変化量を補間することにより推定することができる。
図6を参照して、作業ツール17の重量が25kgの場合には、作業ツール17の重量が20kgの変化量と、作業ツール17の重量が30kgの変化量とを内挿することにより、作業ツール17の重量が25kgの変化量を算出することができる。
【0053】
または、ロボット1が柵等に衝突しないように、安全性を考慮して、駆動軸における変化量を大きく設定しても構わない。この場合に、設定点における動作速度よりも大きな駆動軸の動作速度を選定することができる。または、実際の作業ツールの重量よりも大きな重量を選定することができる。例えば、作業ツール17の重量が25kgの場合には、作業ツール17の重量が30kgの変化量を選定することができる。すなわち、実際の作業ツールの重量よりも大きな作業ツールの重量または実際の駆動軸の動作速度よりも大きな駆動軸の動作速度に基づいて、駆動軸における変化量を推定することができる。
【0054】
停止位置推定部45は、非常停止を実施した時の駆動軸の位置に駆動軸における変化量を加えることにより、ロボット1が停止した時の駆動軸の停止位置を算出することができる。駆動軸の停止位置の算出は、駆動軸ごとに実施することができる。
【0055】
ところで、ロボット1は、2つ以上の駆動軸が同時に駆動している場合がある。このような場合においても、設定点は、予め定められた間隔ごとに設定されている。このために、設定点において非常停止を実施したときの駆動軸の変化量を、それぞれの駆動軸ごとに算出する。そして、停止位置推定部45は、複数の駆動軸ごとにロボットが停止した位置を算出することができる。このときの複数の駆動軸の位置により、ロボット1が停止した時のロボットの位置および姿勢が定まる。
【0056】
このように、停止位置推定部45は、ロボット1が完全に停止したときの各駆動軸の停止位置を推定する。なお、駆動軸に動作可能な範囲が予め設定されている場合がある。たとえば、駆動軸は、予め定められた回転角度の範囲内で動作可能に形成されている場合がある。駆動軸における変化量を非常停止を実施した時の位置に加算した場合に、駆動軸における停止位置が駆動軸の動作可能な範囲を超えている場合がある。この場合には、停止位置推定部45は、動作可能な範囲の限界の位置を駆動軸の停止位置に設定することができる。
【0057】
上記の実施の形態においては、ロボットを実際に駆動して、駆動軸の動作速度および作業ツールの重量に対する駆動軸における変化量の関係を取得しているが、この形態に限られず、シミュレーションにより駆動軸における変化量を算出しても構わない。このようなシミュレーションは、構成部材の形状、構成部材の重量、および減速機の制動距離等に基づいて実施することができる。
【0058】
図5を参照して、次に、ステップ76において、掃引空間算出部46は、駆動軸における停止位置に基づいて、ロボット1および作業ツール17の3次元モデルの掃引空間を算出する。それぞれの設定点において、駆動軸における停止位置が求められている。掃引空間算出部46は、それぞれの駆動軸における停止位置に基づいて、ロボット1の位置および姿勢を算出することができる。掃引空間算出部46は、ロボットシステムを構成する構成部材の位置および姿勢の3次元モデルを算出することができる。
【0059】
掃引空間算出部46は、動作プログラム25に基づいてロボット1を駆動したときの、それぞれの設定点に対応するロボット1および作業ツール17の3次元モデルを作成する。次に、掃引空間算出部46は、非常停止を実施したときの停止位置に対応するロボット1および作業ツール17の3次元形状モデルを追加する。そして、掃引空間算出部46は、これらの3次元モデルの輪郭を互いに接続することにより掃引空間を作成することができる。
【0060】
図7に、本実施の形態におけるシミュレーション装置にてシミュレーションを実施したときの掃引空間の例を示す。本実施の形態のシミュレーション装置40は、シミュレーションを実施した結果を表示する表示部37を備える。また、シミュレーション装置40は、予め定められた情報を入力したり、画像を操作したりするための入力部36として、キーボード38およびマウス39を備える。
【0061】
図1を参照して、ロボット1は、例えば、矢印81a,81b,81c,81d,81eに示すように、予め定められた方向に動くことができる。そして、それぞれの動作においてロボット1の位置および姿勢が変化する。
図7を参照して、表示部37には、ロボット1の動作に基づいて算出された掃引空間53が表示されている。掃引空間53は、動作プログラムによって駆動された時の構成部材が通過する領域の他に、任意の設定点で非常停止を実施したときに構成部材が通過する領域が含まれている。掃引空間53は、ロボット1が動作プログラムに基づいて移動したときの掃引空間よりも大きくなる。
【0062】
このように、掃引空間算出部46は、ロボット1が非常停止を実施した後の停止位置に基づいて、停止位置に対応する構成部材の3次元モデルを作成する。そして、掃引空間算出部46は、3次元モデルをつなぎ合わせることにより、掃引空間53を形成することができる。
【0063】
作業者は、推定された掃引空間53に接触しないように他の装置や柵を配置することができる。例えば、作業者は、掃引空間53に接触しないようにロボット1の周りの柵の位置を定めることができる。シミュレーション装置40が算出する掃引空間53は、非常停止が実施された後にロボット1が惰性にて動く領域が含まれている。このために、作業者は、柵により囲まれる作業領域が大きすぎたり小さすぎたりしない様に、適切な位置に柵を配置することができる。すなわち、ロボットシステムの周りに確保する安全な領域を適切な大きさにすることができる。
【0064】
上記の実施の形態では、非常停止が実施された時の駆動軸の位置と、ロボットが完全に停止した時の駆動軸の位置に基づいて3次元モデルを作成している。シミュレーション装置40は、更に、非常停止が実施された位置からロボットが完全に停止した位置までの動作経路を推定して、推定した動作経路の途中の点に対応する3次元モデルを追加することができる。
【0065】
図8に、非常停止を実施してからの経過時間と予め選定された駆動軸の動作速度との関係を説明するグラフを示す。非常停止を実施してから駆動軸の動作速度が零になるまで、負の加速度が生じる。本実施の形態においては、この負の加速度は一定であると仮定する。すなわち、経過時間に対する動作速度の傾きは一定であると仮定する。
【0066】
図8に示す例では、経過時間が零の時に非常停止を実施している。速度viは非常停止を実施したときの駆動軸の動作速度である。経過時間tsにおいて、駆動軸の動作速度が零になっている。この時に、駆動軸の変化量は、グラフ、動作速度の軸、および経過時間の軸に囲まれる面積に相当する。
【0067】
図9に、駆動軸における変化量を推定する制御を説明するグラフを示す。例えば、ロボット1が停止するまでの期間中に、経過時間t1を設定することができる。非常停止を実施してから経過時間t1までの変化量は、斜線にて示された台形の部分の面積に相当する。停止位置推定部45は、非常停止を実施してからロボット1が停止するまでの動作経路を分割して、新たな設定点を設定することができる。例えば、経過時間t1に対応する設定点を設定することができる。そして、停止位置推定部45は、新たに設定した設定点において、非常停止を実施してからの経過時間に基づいて、駆動軸における変化量を算出することができる。停止位置推定部45は、この計算をそれぞれの駆動軸ごとに行うことができる。
【0068】
掃引空間算出部46は、新たに設定した設定点におけるロボット1および作業ツール17の三次元モデルを追加し、掃引空間を算出することができる。この制御を実施することにより、非常停止を実施してからロボット1が停止するまでの掃引空間をより正確に算出することができる。
【0069】
ロボット1の非常停止を実施してからロボット1が停止するまでの期間において、新たな設定点を設定する方法については、任意の方法を採用することができる。例えば、
図9においては、経過時間tsの半分の時間において新たな設定点を追加しているが、この形態に限られず、経過時間tsを任意の時間間隔で分割することができる。
【0070】
また、本実施の形態では、駆動軸における動作速度が一定の加速度にて減少すると仮定したが、この形態に限られず、実験などにより動作速度の減少傾向を予め取得し、この減少傾向を用いて駆動軸における変化量を算出しても構わない。
【0071】
本実施の形態の第1のロボットシステムにおいては、ロボット1が床面20に固定されている。一方で、ロボットシステムでは、ロボット1が支持部材に載置され、支持部材が移動する場合がある。すなわち、ロボットシステムでは、ロボット全体が移動する場合がある。そして、ロボット1の支持部材についても非常停止を実施する場合がある。次に、ロボット全体が移動するロボットシステムについて説明する。
【0072】
図10に、本実施の形態における第2のロボットシステムの概略平面図を示す。第2のロボットシステムは、ロボット1を支持する支持部材としての回転テーブル3を備える。回転テーブル3は、床面に固定されている。ロボット1のベース部19は、回転テーブル3に固定されている。回転テーブル3は、予め定められた回転軸の周りにロボット1の全体を回転するように形成されている。
図10に示す例においては、回転テーブル3の回転軸と、ロボット1の旋回部11の第1の駆動軸とが一致するように形成されている。
【0073】
本実施の形態の回転テーブル3は、ロボット制御装置2に制御されている。回転テーブル3を駆動するモータには、回転位置検出器が配置されている。回転位置検出器の出力は、ロボット制御装置2に送信される。
【0074】
図10には、回転テーブル3の駆動が開始した時のロボット1の初期の位置61aと、回転テーブル3の非常停止が実施された後に回転テーブル3が完全に停止したときのロボット1の位置61cが示されている。第2のロボットシステムにおいては、ロボット1が停止している状態においても、回転テーブル3が駆動することにより、ロボット1が回転移動する。シミュレーション装置40は、回転テーブル3が動作プログラムに基づいて駆動した時の掃引空間および回転テーブル3が非常停止を実施した時の掃引空間を、ロボット1が動作する場合と同様の方法により算出することができる。
【0075】
シミュレーション装置40には、回転テーブル3の3次元形状データが入力される。そして、作業者は、回転テーブル3の回転軸を駆動軸として設定する。また、回転テーブル3の駆動軸が非常停止を実施した場合について、
図6に示すような駆動軸の動作速度および作業ツールの重量に対する駆動軸における変化量の関係を求めておくことができる。
【0076】
シミュレーション装置40は、ロボット1が動作した場合の掃引空間に加えて、回転テーブル3が動作したときの掃引空間を算出することができる。例えば、ロボット1が停止している状態においても、回転テーブル3が矢印87に示すように駆動すると、ロボット1のアーム12a,12bは、矢印84に示すように移動する。
【0077】
シミュレーション装置40は、旋回部11、アーム12a,12b、手首部16および作業ツール17による掃引空間51に加えて、ベース部19による掃引空間54を算出することができる。特に、シミュレーション装置40は、ロボット1が緊急停止を実施したときの掃引空間に、回転テーブル2が緊急停止を実施したときの掃引空間を加算して、全体の掃引空間を算出することができる。
【0078】
図11に、本実施の形態における第3のロボットシステムの概略平面図を示す。第3のロボットシステムは、ロボット1を支持する支持部材としての走行台5を備える。ロボット1は、走行台5に固定されている。走行台5は、レール4に沿って移動するように形成されている。本実施の形態の走行台5の駆動軸は、直動軸である。
【0079】
本実施の形態の走行台5は、ロボット制御装置2に制御されている。走行台5を駆動するモータには、回転位置検出器が配置されている。回転位置検出器の出力は、ロボット制御装置2に送信される。回転位置検出器の出力により、走行台5の位置を算出することができる。
【0080】
図11には、走行台5の移動が開始した時のロボット1の初期の位置61aと、走行台5の非常停止が実施された後に完全に走行台5が停止したときのロボット1の位置61cが示されている。
【0081】
第3のロボットシステムにおいては、ロボット1が停止している状態においても、走行台5が駆動することにより、ロボット1が直線的に移動する。シミュレーション装置40は、走行台5が駆動した時の掃引空間および走行台5が非常停止を実施した時の掃引空間を、ロボット1が動作する場合と同様の方法により算出することができる。
【0082】
第3のロボットシステムにおいては、シミュレーション装置40に走行台5の3次元形状データが入力される。作業者は、走行台5の直動軸を駆動軸として設定する。また、走行台5が非常停止を実施した場合について、
図6に示すような駆動軸の動作速度および作業ツールの重量に対する駆動軸における変化量の関係を求めておくことができる。
【0083】
シミュレーション装置40は、ロボット1が動作した場合の掃引空間に加えて、走行台5が動作したときの掃引空間を算出することができる。例えば、ロボット1が停止している状態においても、走行台5が矢印85に示すように移動すると、ロボット1は、矢印86に示すように移動する。シミュレーション装置40は、ロボット1および作業ツール17による掃引空間55および走行台5による掃引空間56を算出することができる。特に、シミュレーション装置40は、ロボット1が緊急停止を実施したときの掃引空間に、走行台5が緊急停止を実施したときの掃引空間を加算して、全体の掃引空間を算出することができる。
【0084】
このように、ロボットシステムがロボット1を移動するための支持部材を備える場合にも、シミュレーション装置は、支持部材の駆動軸を設定し、支持部材が非常停止を実施した場合における掃引空間を算出することができる。そして、支持部材が通常の経路を移動した場合の掃引空間に非常停止を実施した時の掃引空間を加算して、支持部材が動作した場合の掃引空間を算出することができる。
【0085】
なお、ロボット1を移動する支持部材としては、上記の回転テーブルおよび走行台に限られず、ロボット1の全体を移動することができる任意の支持部材を採用することができる。
【0086】
本実施の形態における状態検出器は、それぞれのモータに取り付けられた回転角を検出する回転位置検出器であるが、この形態に限られず、状態検出器は、駆動軸において変化する位置を検出可能な任意の検出器を採用することができる。例えば、駆動軸が直動軸の場合には、状態検出器は、構成部材の位置を検出するリニアスケール等を含んでいても構わない。
【0087】
本実施の形態においては、多関節ロボットを例示して説明したが、この形態に限られず、ロボットの関節部は1個であっても構わない。
【0088】
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、特許請求の範囲に示される実施の形態の変更が含まれている。