(57)【特許請求の範囲】
【請求項１】
ロボットおよび前記ロボットに取り付けられた作業ツールの３次元モデルを同一の空間に配置して、前記ロボットのシミュレーションを行うシミュレーション装置であって、
前記作業ツールの重量を取得する重量取得部と、
前記ロボットの動作プログラムを実行したときに、前記ロボットの動作経路の微小区間ごとに設定された設定点における前記ロボットの各駆動軸の位置を取得する位置取得部と、
前記設定点における各駆動軸の動作速度を取得する速度取得部と、
前記ロボットの各駆動軸の位置、各駆動軸の動作速度、および前記作業ツールの重量に基づいて、それぞれの前記設定点において前記ロボットの非常停止を実施したときに、各駆動軸において惰性にて動作した後に停止する停止位置を推定し、更に、非常停止を実施した位置から前記停止位置までの動作経路を推定して、非常停止を実施した位置から前記停止位置までの動作経路上に新たな点を追加する停止位置推定部と、
前記停止位置にて停止した時の前記ロボットおよび前記作業ツールの３次元モデルと、前記新たな点における前記ロボットおよび前記作業ツールの３次元モデルとを生成し、前記停止位置にて停止した時の３次元モデルおよび前記新たな点における３次元モデルをつなぎ合わせることにより前記ロボットおよび前記作業ツールの３次元の掃引空間を算出する掃引空間算出部と、を備えることを特徴とする、シミュレーション装置。
【請求項２】
前記ロボットに予め定められた重量の前記作業ツールを取り付けて、１つの駆動軸において予め定められた方向および予め定められた動作速度にて前記ロボットを駆動している期間中に前記ロボットの非常停止を実施した時に、非常停止を実施してから前記ロボットが停止するまでの駆動軸における変化量を取得する変化量取得部を備え、
前記変化量取得部は、前記作業ツールの重量および駆動軸の動作速度を変化させて繰り返して前記ロボットの非常停止を実施することにより、前記作業ツールの重量および駆動軸の動作速度に対する駆動軸における変化量の関係を取得し、
前記停止位置推定部は、前記作業ツールの重量および駆動軸の動作速度に対する駆動軸における変化量の関係に基づいて駆動軸の停止位置を推定する、請求項１に記載のシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのシミュレーション装置に関する。
【背景技術】
【０００２】
ロボットは、位置および姿勢を変更することにより、ワークの搬送や溶接などの所定の作業を行うことができる。ロボットは作業に合わせて位置および姿勢が変化するために、ロボットを備えるロボットシステムの周りには、作業者の立ち入りを制限するために柵が配置される場合がある。ロボットシステムの周りの柵は、ロボットが動作する期間中にロボットが柵に接触しないようにロボットから離れて配置される。このような柵の位置を決定するためには、ロボットが動作する時にロボットの構成部材が通過する掃引空間を予め取得することが好ましい。柵は、掃引空間に接触しないように配置することができる。
【０００３】
特開２０１４−２１３３９９号公報においては、オペレータがマニピュレータ端部を手で把持し、ロボット教示システムの制御と共にマニピュレータを手動にて操作して教示点を教示する方法が開示されている。このロボットの教示方法は、マニピュレータのボディでロボット周囲の空間を掃引し、掃引空間の情報をロボット教示システムに記録させることが開示されている。そして、この方法では、掃引空間を教示作業に利用することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２１３３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ロボットは、動作期間中に非常停止を実施する場合がある。たとえば、ロボット制御装置は、ロボットが人に接触したことを検出した場合に、ロボットの非常停止を実施する。または、作業者が非常停止ボタンを押すことにより、ロボット制御装置は、瞬時にロボットを停止させる。
【０００６】
ロボットは、駆動軸を有し、駆動軸に基づいてアームなどの構成部材が駆動される。ロボットの構成部材は、モータによって駆動される。モータには、モータの出力シャフトの回転を阻止するためのブレーキが配置されている。モータへの電気の供給を遮断する場合には、ロボットの位置および姿勢を維持するためにブレーキが作動する。
【０００７】
ロボットの非常停止を実施する場合にはブレーキが作動するが、ロボットの慣性により、ロボットは、非常停止の制御が実施された位置および姿勢から更に移動して停止する。このために、動作プログラムに基づいてロボットが駆動している期間中に非常停止を実施した場合に、ロボットは、動作プログラムを実行した場合の正常な経路から逸脱した位置にて停止する場合がある。
【０００８】
このため、ロボットシステムの周りに柵を配置する場合には、動作プログラムに基づいてロボットが通過した領域だけでなく、ロボットが非常停止を実施して正常な経路から逸脱する領域を考慮する必要がある。柵は、正常な経路から逸脱する領域と干渉しないように配置する必要がある。従来の技術においては、ロボットシステムを取り囲む柵は、十分にロボットシステムから離れて配置されていた。このために、ロボットシステムの作業領域が大きくなりすぎている場合があった。または、ロボットが非常停止を実施したときの動作の予測量が小さい場合には、ロボットシステムの作業領域が小さくなり、ロボットが非常停止を実施したときにロボットが柵に接触する場合があった。
【０００９】
上記の特開２０１４−２１３３９９号公報では、ロボットが動作したときの掃引空間の取得について提案されているが、ロボットが非常停止によって正常な経路を逸脱することについては考慮されていない。
【課題を解決するための手段】
【００１０】
本発明のシミュレーション装置は、ロボットおよびロボットに取り付けられた作業ツールの３次元モデルを同一の空間に配置して、ロボットのシミュレーションを行うシミュレーション装置である。シミュレーション装置は、作業ツールの重量を取得する重量取得部を備える。シミュレーション装置は、ロボットの動作プログラムを実行したときに、ロボットの動作経路の微小区間ごとに設定された設定点におけるロボットの各駆動軸の位置を取得する位置取得部と、設定点における各駆動軸の動作速度を取得する速度取得部とを備える。シミュレーション装置は、ロボットの各駆動軸の位置、各駆動軸の動作速度、および作業ツールの重量に基づいて、それぞれの設定点においてロボットの非常停止を実施したときに、各駆動軸において惰性にて動作した後に停止する停止位置を推定し、更に、非常停止を実施した位置から停止位置までの動作経路を推定して、非常停止を実施した位置から停止位置までの動作経路上に新たな点を追加する停止位置推定部を備える。シミュレーション装置は、停止位置にて停止した時のロボットおよび作業ツールの３次元モデルと、新たな点におけるロボットおよび作業ツールの３次元モデルとを生成し、停止位置にて停止した時の３次元モデルおよび新たな点における３次元モデルをつなぎ合わせることによりロボットおよび作業ツールの３次元の掃引空間を算出する掃引空間算出部を備える。
【００１１】
上記発明において、シミュレーション装置は、ロボットに予め定められた重量の作業ツールを取り付けて、１つの駆動軸において予め定められた方向および予め定められた動作速度にてロボットを駆動している期間中にロボットの非常停止を実施した時に、非常停止を実施してからロボットが停止するまでの駆動軸における変化量を取得する変化量取得部を備えることができる。変化量取得部は、作業ツールの重量および駆動軸の動作速度を変化させて繰り返してロボットの非常停止を実施することにより、作業ツールの重量および駆動軸の動作速度に対する駆動軸における変化量の関係を取得することができる。停止位置推定部は、作業ツールの重量および駆動軸の動作速度に対する駆動軸における変化量の関係に基づいて駆動軸の停止位置を推定することができる。
【発明の効果】
【００１２】
本発明によれば、ロボットが非常停止を実施した場合のロボットの掃引空間を算出するシミュレーション装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態における第１のロボットシステムのロボットの斜視図である。
【図２】実施の形態における第１のロボットシステムのブロック図である。
【図３】掃引空間を説明するロボットの第１の概略平面図である。
【図４】掃引空間を説明するロボットの第２の概略平面図である。
【図５】実施の形態におけるシミュレーション装置の制御のフローチャートである。
【図６】ロボットの非常停止を実施した後の１つの駆動軸における変化量を説明する図ある。
【図７】掃引空間を表示したシミュレーション装置の概略図である。
【図８】非常停止を実施してからの経過時間と駆動軸の動作速度との関係を示す第１のグラフである。
【図９】非常停止を実施してからの経過時間と駆動軸の動作速度との関係を示す第２のグラフである。
【図１０】実施の形態における第２のロボットシステムの概略平面図である。
【図１１】実施の形態における第３のロボットシステムの概略平面図である。
【発明を実施するための形態】
【００１４】
図１から図１１を参照して、実施の形態におけるシミュレーション装置について説明する。本実施の形態のシミュレーション装置は、ロボットのシミュレーションを実施することにより、ロボットが非常停止を実施した場合の掃引空間を算出する。
【００１５】
図１は、本実施の形態においてシミュレーションを行う第１のロボットシステムのロボットの斜視図である。ロボットシステムは、予め定められた作業を行う作業ツール１７と、作業ツール１７の位置および姿勢を変更するロボット１とを備える。本実施の形態のロボット１は、アーム１２ａ，１２ｂ、手首部１６、および複数の関節部１３を含む多関節ロボットである。ロボット１には、電源ボックスおよびケーブル等の構成部材が含まれる。
【００１６】
本実施の形態のロボット１は、６個の駆動軸を備える。旋回部１１は、矢印９１に示す様に第１の駆動軸に基づいて回転する。アーム１２ａ，１２ｂは、矢印９２〜９４に示す様に、第２の駆動軸、第３の駆動軸および第４の駆動軸に基づいて回転する。手首部１６は、矢印９５に示す様に、第５の駆動軸に基づいて回転する。作業ツール１７は、矢印９６に示す様に、第６の駆動軸に基づいて回転する。
【００１７】
ロボット１は、それぞれの関節部１３にて構成部材を駆動するロボット駆動装置を含む。ロボット駆動装置は、関節部１３にて構成部材を駆動するモータ１４を含む。モータ１４が駆動することにより、アーム１２ａ，１２ｂおよび手首部１６を関節部１３にて所望の方向に向けることができる。ロボット１は、床面２０に固定されているベース部１９と、ベース部１９に対して回転する旋回部１１とを備える。ロボット駆動装置は、旋回部１１を駆動するモータ１４を含む。
【００１８】
ロボット１に取り付けられた作業ツール１７は、エンドエフェクタとも称される。作業ツール１７は、ロボット１の手首部１６に取り付けられている。本実施の形態の作業ツール１７は、スポット溶接を行うための溶接ガンであるが、この形態に限られず、作業の内容に応じて任意の作業ツールをロボットに連結することができる。作業ツール１７は、作業ツール１７を駆動するためのツール駆動装置１８を含む。本実施の形態のツール駆動装置１８は、電極に電気を供給する電気回路を含む。
【００１９】
図２に、本実施の形態におけるロボットシステムのブロック図を示す。図１および図２を参照して、ロボットシステムは、ロボット１を制御するロボット制御装置２を備える。ロボット制御装置２は、バスを介して互いに接続されたＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、およびＲＯＭ（Read Only Memory）等を有する演算処理装置を含む。
【００２０】
ロボット制御装置２は、ロボット１および作業ツール１７の制御に関する情報を記憶する記憶部２４を含む。ロボット制御装置２は、予め入力された動作プログラム２５に基づいてロボット１を駆動することができる。動作プログラム２５は、記憶部２４に記憶される。
【００２１】
ロボット制御装置２は、動作制御部２１を含む。動作制御部２１は、ロボット１および作業ツール１７を駆動する動作指令を送出する。動作制御部２１は、ロボット１を駆動するための動作指令をロボット駆動部２２に送出する。ロボット駆動部２２は、ロボット１のモータ１４を駆動する電気回路を含む。ロボット駆動部２２は、動作指令に基づいてアーム等を駆動するモータ１４に電気を供給する。また、動作制御部２１は、作業ツール１７を駆動するための動作指令を作業ツール駆動部２３に送出する。作業ツール駆動部２３は、ツール駆動装置１８を駆動する電気回路を含む。作業ツール駆動部２３は、動作指令に基づいてツール駆動装置１８に電気を供給する。
【００２２】
ロボット１は、ロボット１の構成部材の状態を検出する状態検出器を備える。本実施の形態の状態検出器は、それぞれの駆動軸のモータ１４に取り付けられた回転位置検出器１５を含む。回転位置検出器１５は、モータ１４が駆動するときの回転位置を検出する。回転位置検出器１５にて検出された回転位置の情報は、ロボット制御装置２に送信される。ロボット制御装置２は、それぞれの駆動軸の回転位置に基づいて回転速度を検出することができる。また、ロボット制御装置２は、それぞれのモータ１４の回転位置に基づいて、ロボット１の構成部材の位置および姿勢を検出することができる。
【００２３】
ロボットシステムは、作業者がロボット制御装置２に所定の情報を入力したり、作業の状態を表示したりする操作盤２６を含む。本実施の形態の操作盤２６には、作業者がロボット１を緊急に停止させるための非常停止ボタン２７が配置されている。
【００２４】
本実施の形態のロボット１は、予め定められた条件が成立すると、動作プログラム２５に基づく動作の期間中に非常停止を実施するように形成されている。たとえば、作業員が非常停止ボタン２７を押すことにより、ロボット制御装置２は、ロボット１の非常停止を実施する。または、動作制御部２１がロボット１または作業ツール１７の異常を検出した場合には、ロボット制御装置２は、ロボット１の非常停止を実施する。
【００２５】
本実施の形態のロボット駆動装置は、それぞれの駆動軸における移動を停止させるブレーキを含む。ブレーキは、例えば、モータ１４の出力シャフトの回転を停止させるように形成されている。本実施の形態のブレーキは、モータ１４に取り付けられている。ブレーキは、ロボット制御装置２の動作制御部２１により制御されている。
【００２６】
動作制御部２１は、非常停止を実施すべき非常停止信号を受信した場合には、ロボット１を即時に停止させる。非常停止の制御において、動作制御部２１は、ロボット１の動作している駆動軸のモータ１４に対して停止指令を送出する。すなわち、動作制御部２１は、動作している駆動軸に対して零の移動指令を出力する。ロボット１のモータ１４は、停止する。また、動作制御部２１は、モータ１４のブレーキを作動する。モータ１４の出力シャフトがブレーキにより制動される。
【００２７】
図３に、ロボットの非常停止を実施した時のロボットの動作を説明する概略図を示す。図３は、ロボット１を上側から見たときの図である。図３に示す例においては、第１の駆動軸の周りに旋回部１１が回転した状態を示している。旋回部１１が回転することにより、アーム１２ａ，１２ｂおよび作業ツール１７も回転する。
【００２８】
アーム１２ａ，１２ｂおよび作業ツール１７は、初期の位置６１ａから矢印８２に示すように移動する。そして、ロボット１の位置６１ｂにて非常停止が実施されている。ロボット１の第１の駆動軸のモータ１４への電気の供給が停止される。また、第１の駆動軸のモータ１４のブレーキが作動する。ところが、ロボット１は、慣性のために、動作制御部２１が停止指令を発信した時、すなわち、非常停止を実施した時の位置および姿勢では停止しない。ロボット１は、矢印８３に示すように、惰性により移動を継続する。そして、ロボット１の位置６１ｃにおいて、ロボット１は完全に停止する。
【００２９】
本実施の形態においては、ロボット１の構成部材等の移動する部材が移動した空間を掃引空間と称する。掃引空間は、予め定められた部材が通過した領域に相当する。ロボット１の非常停止を実施した場合には、停止指令が発信された位置よりも更にロボット１が移動する。この例での掃引空間５１は、矢印８３に示す様にアーム１２ａ，１２ｂ、手首部１６および作業ツール１７が通過した領域を含む。
【００３０】
図４に、本実施の形態におけるロボットの非常停止を実施した時のロボットの他の動作を説明する概略図を示す。図４は、ロボット１を上側から見た時の図である。図４に示す例においては、第２の駆動軸の周りにアーム１２ａが移動している。ロボット１の初期の位置６１ａからアーム１２ｂが外側に向かって移動すると共に、アーム１２ａ，１２ｂの位置および姿勢が変化している。そして、アーム１２ａが移動している期間中に非常停止が実施されている。ロボット１の非常停止は、位置６１ｂにて実施されている。そして、ロボット１の惰性により、ロボット１の位置６１ｃまでアーム１２ａ，１２ｂの位置および姿勢が変化している。この例での掃引空間５２は、非常停止を実施した後にアーム１２ａ，１２ｂ、手首部１６および作業ツール１７が通過した領域を含む。
【００３１】
図２および図３を参照して、ロボットが非常停止を実施したときの掃引空間５１，５２は、ロボット１の惰性による移動を含めた空間になる。掃引空間５１，５２は、初期の位置６１ａからロボット１が停止した位置６１ｃまで、ロボット１が通過した領域により構成される。
【００３２】
図１および図２を参照して、本実施の形態におけるロボットシステムは、シミュレーション装置４０を備える。シミュレーション装置４０は、ロボット１および作業ツール１７の３次元モデルを同一の空間に配置して、ロボット１のシミュレーションを実施する。
【００３３】
シミュレーション装置４０は、ＣＰＵ等を含む演算処理装置にて構成されている。シミュレーション装置４０は、ロボットシステムのシミュレーションに関する任意の情報を記憶する記憶部４７を備える。シミュレーション装置４０には、ロボット１および作業ツール１７の３次元形状データ３１が入力される。３次元形状データ３１は、例えばＣＡＤ（Computer Aided Design）装置から出力されるデータを用いることができる。３次元形状データ３１は、記憶部４７に記憶される。シミュレーション装置４０には、作業ツール１７の重量を含む重量データ３２が入力される。重量データ３２は、記憶部４７に記憶される。
【００３４】
シミュレーション装置４０は、ロボット１および作業ツール１７等の移動する部材の３次元形状データを取得する形状取得部４１を備える。シミュレーション装置４０は、作業ツール１７の重量を取得する重量取得部４２を備える。また、シミュレーション装置４０は、ロボット１のそれぞれの駆動軸の位置を取得する位置取得部４３と、それぞれの駆動軸の動作速度を取得する速度取得部４４とを備える。本実施の形態の位置取得部４３は、全ての駆動軸の位置を取得することができる。また、速度取得部４４は、全ての駆動軸の動作速度を取得することができる。更に、シミュレーション装置４０は、ロボット１の非常停止を実施した時に、各駆動軸において惰性にて動作した後に停止する停止位置を推定する停止位置推定部４５を備える。シミュレーション装置４０は、各駆動軸の停止位置に基づいて、ロボット１および作業ツール１７の３次元モデルの掃引空間を算出する掃引空間算出部４６を備える。
【００３５】
図５に、本実施の形態のシミュレーション装置における制御のフローチャートを示す。図２および図５を参照して、ステップ７１において、形状取得部４１は、ロボット１および作業ツール１７の３次元形状データを記憶部４７から取得する。ロボット１の３次元形状データには、ロボット１を構成する構成部材の形状データが含まれている。例えば、ロボット１の３次元形状データには、ロボット１を駆動することにより移動するアーム１２ａ，１２ｂおよび作業ツール１７等の形状データが含まれている。ステップ７２において、重量取得部４２は、作業ツール１７の重量を記憶部４７から取得する。
【００３６】
ステップ７３において、位置取得部４３は、ロボット１の動作経路上に設定された設定点におけるロボット１の各駆動軸の位置を取得する。ここで、動作経路は、たとえば、ツール先端点の経路を例示することができる。動作制御部２１は、予め定められたロボットの制御周期（補間周期）ごとに動作指令を発信する。本実施の形態においては、制御周期ごとに指定される点を設定点にしている。動作経路には、微小区間ごとに設定点が設定される。なお、設定点は、微小時間ごとに設定しても、動作経路における微小距離ごとに設定しても構わない。
【００３７】
ここでは、動作プログラムの実行に関して、実際にロボット１を駆動する例を説明する。ロボット制御装置２の動作制御部２１は、動作プログラム２５に基づいてロボット１および作業ツール１７を駆動する。ロボット１は、予め定められた動作経路に沿うように位置および姿勢を変化する。
【００３８】
回転位置検出器１５は、ロボット１が駆動している期間中に、それぞれの駆動軸の位置を検出する。回転位置検出器１５は、駆動軸における回転角度を検出する。回転位置検出器１５は、設定点に対応するように、ロボット１の制御周期ごとに回転角度を検出する。回転位置検出器１５は、駆動軸の回転角度をロボット制御装置２に送出する。本実施の形態では、全ての駆動軸において位置を検出している。
【００３９】
位置取得部４３は、ロボット制御装置２からそれぞれの駆動軸の回転角度を取得する。位置取得部４３は、設定点に対応する制御周期ごとの駆動軸の回転角度を取得して、記憶部４７に記憶する。このように、位置取得部４３は、ロボット１の動作経路の微小区間ごとに設定された設定点に対応するロボットの各駆動軸の位置を取得する。
【００４０】
なお、各駆動軸の位置の取得においては、例えば、シミュレーション装置が動作プログラムを実行するシミュレーションを実施し、位置取得部がシミュレーションの結果に基づいて、設定点におけるロボットの各駆動軸の位置を取得しても構わない。
【００４１】
次に、ステップ７４において、速度取得部４４は、設定点におけるそれぞれの駆動軸の動作速度を取得する。速度取得部４４は、互いに連続する設定点に対応する駆動軸の位置から回転した角度を算出し、算出した角度および制御周期に基づいて駆動軸の動作速度を算出することができる。または、回転位置検出器１５が動作速度を算出する機能を有する場合がある。この場合には、回転位置検出器１５から出力される動作速度は、ロボット制御装置２に送信される。速度取得部４４は、ロボット制御装置２から駆動軸の動作速度を取得しても構わない。
【００４２】
次に、ステップ７５において、停止位置推定部４５は、設定点においてロボットの非常停止を実施した場合に、それぞれの駆動軸の停止位置を推定する。ロボット１の構成部材は、非常停止を実施した後も惰性で移動する。本実施の形態においては、作業ツール１７の重量および駆動軸の動作速度に対する駆動軸の惰性の変化量の関係を予め求めて、記憶部４７に記憶しておく。そして、停止位置推定部４５は、作業ツールの重量および駆動軸の動作速度に対する駆動軸の変化量の関係に基づいて、それぞれの駆動軸の停止位置を推定する。
【００４３】
図２を参照して、シミュレーション装置４０は、ロボット１の非常停止を実施してから完全にロボット１が停止するまでの駆動軸の変化量を取得する変化量取得部４９を備える。
【００４４】
図６に、１つの駆動軸においてロボットの非常停止を実施した時の駆動軸の変化量の表を示す。この表は、１つの駆動軸において、予め定められた方向および予め定められた動作速度にてロボット１を駆動している期間中に、非常停止を実施したときの駆動軸の変化量を示している。駆動軸の変化量は、非常停止を実施してから完全にロボット１が停止するまでの回転角度に相当する。
【００４５】
駆動軸の変化量は、駆動軸の動作速度と作業ツールの重量との関数になる。非常停止を実施した後の駆動軸の変化量は、作業ツール１７が重たくなるほど大きくなる。また、非常停止を実施した時の駆動軸の動作速度が大きいほど、駆動軸の変化量は大きくなる。
【００４６】
本実施の形態においては、実際にロボット１を駆動することにより、図６に示す駆動軸の変化量を求めている。作業者は、予め定められた重量の作業ツール１７をロボット１に取り付ける。そして、作業者は、１つの駆動軸を特定駆動軸として選定する。作業者は、特定駆動軸において予め定められた方向および予め定められた動作速度にてロボット１を駆動する。そして、作業者は、ロボット１を駆動している期間中に非常停止を実施する。このときに、変化量取得部４９は、非常停止を実施したときの特定駆動軸の位置と、ロボット１が停止したときの特定駆動軸の位置を検出する。変化量取得部４９は、特定駆動軸の位置の差を特定駆動軸の変化量として取得することができる。
【００４７】
例えば、作業者は、１０ｋｇの作業ツール１７をロボット１に取り付ける。そして、選定した特定駆動軸において、速度が１０ｄｅｇ／ｓになるようにロボット１を駆動する。そして、速度が１０ｄｅｇ／ｓの時に非常停止を実施する。変化量取得部４９は、非常停止を実施したときの回転位置検出器１５の出力を検出する。また、変化量取得部４９は、ロボット１が停止した時の回転位置検出器１５の出力を検出する。変化量取得部４９は、完全にロボット１が停止した時の回転角度から非常停止を実施したときの回転角度を減算することにより、５ｄｅｇの駆動軸の変化量を算出することができる。
【００４８】
作業者は、ロボット１に取り付ける作業ツールの重量および駆動軸の動作速度を変更して、同様の測定を繰り返すことにより、特定駆動軸の動作速度および作業ツールの重量に対する特定駆動軸の変化量の関係を取得することができる。なお、作業者は、特定駆動軸の変化量を取得するためのロボット１の動作プログラムを予め作成し、この動作プログラムを用いてロボット１を駆動しても構わない。
【００４９】
駆動軸の動作速度および作業ツールの重量に対する駆動軸の変化量の関係は、それぞれの駆動軸ごとに算出することができる。他の駆動軸においても上記と同様の測定を実施することにより、全ての駆動軸について、駆動軸の動作速度および作業ツールの重量に対する駆動軸の変化量の関係を取得することができる。例えば、本実施の形態におけるロボット１は、６個の駆動軸を有する。このために、作業者は、駆動軸ごとに、図６に示すような表を６個作成しておくことができる。
【００５０】
このように、変化量取得部４９は、作業ツール１７の重量および駆動軸の動作速度を変化させて繰り返してロボット１の非常停止を実施することにより、作業ツール１７の重量および駆動軸における動作速度に対する駆動軸における変化量の関係を取得することができる。そして、この関係は、記憶部４７に記憶しておくことができる。
【００５１】
図２を参照して、停止位置推定部４５は、図６に示す変化量の関係を用いて、予め定められた設定点において、非常停止を実施したときの駆動軸における変化量を算出する。非常停止を実施したときの変化量の算出は、駆動軸ごとに実施することができる。
【００５２】
作業ツールの重量および設定点における駆動軸の動作速度が予め取得した測定値と異なる場合に、停止位置推定部４５は、複数の変化量を内挿したり外装したりすることにより変化量を算出することができる。例えば、設定点における値の両側の測定値を選定した後に、変化量を補間することにより推定することができる。図６を参照して、作業ツール１７の重量が２５ｋｇの場合には、作業ツール１７の重量が２０ｋｇの変化量と、作業ツール１７の重量が３０ｋｇの変化量とを内挿することにより、作業ツール１７の重量が２５ｋｇの変化量を算出することができる。
【００５３】
または、ロボット１が柵等に衝突しないように、安全性を考慮して、駆動軸における変化量を大きく設定しても構わない。この場合に、設定点における動作速度よりも大きな駆動軸の動作速度を選定することができる。または、実際の作業ツールの重量よりも大きな重量を選定することができる。例えば、作業ツール１７の重量が２５ｋｇの場合には、作業ツール１７の重量が３０ｋｇの変化量を選定することができる。すなわち、実際の作業ツールの重量よりも大きな作業ツールの重量または実際の駆動軸の動作速度よりも大きな駆動軸の動作速度に基づいて、駆動軸における変化量を推定することができる。
【００５４】
停止位置推定部４５は、非常停止を実施した時の駆動軸の位置に駆動軸における変化量を加えることにより、ロボット１が停止した時の駆動軸の停止位置を算出することができる。駆動軸の停止位置の算出は、駆動軸ごとに実施することができる。
【００５５】
ところで、ロボット１は、２つ以上の駆動軸が同時に駆動している場合がある。このような場合においても、設定点は、予め定められた間隔ごとに設定されている。このために、設定点において非常停止を実施したときの駆動軸の変化量を、それぞれの駆動軸ごとに算出する。そして、停止位置推定部４５は、複数の駆動軸ごとにロボットが停止した位置を算出することができる。このときの複数の駆動軸の位置により、ロボット１が停止した時のロボットの位置および姿勢が定まる。
【００５６】
このように、停止位置推定部４５は、ロボット１が完全に停止したときの各駆動軸の停止位置を推定する。なお、駆動軸に動作可能な範囲が予め設定されている場合がある。たとえば、駆動軸は、予め定められた回転角度の範囲内で動作可能に形成されている場合がある。駆動軸における変化量を非常停止を実施した時の位置に加算した場合に、駆動軸における停止位置が駆動軸の動作可能な範囲を超えている場合がある。この場合には、停止位置推定部４５は、動作可能な範囲の限界の位置を駆動軸の停止位置に設定することができる。
【００５７】
上記の実施の形態においては、ロボットを実際に駆動して、駆動軸の動作速度および作業ツールの重量に対する駆動軸における変化量の関係を取得しているが、この形態に限られず、シミュレーションにより駆動軸における変化量を算出しても構わない。このようなシミュレーションは、構成部材の形状、構成部材の重量、および減速機の制動距離等に基づいて実施することができる。
【００５８】
図５を参照して、次に、ステップ７６において、掃引空間算出部４６は、駆動軸における停止位置に基づいて、ロボット１および作業ツール１７の３次元モデルの掃引空間を算出する。それぞれの設定点において、駆動軸における停止位置が求められている。掃引空間算出部４６は、それぞれの駆動軸における停止位置に基づいて、ロボット１の位置および姿勢を算出することができる。掃引空間算出部４６は、ロボットシステムを構成する構成部材の位置および姿勢の３次元モデルを算出することができる。
【００５９】
掃引空間算出部４６は、動作プログラム２５に基づいてロボット１を駆動したときの、それぞれの設定点に対応するロボット１および作業ツール１７の３次元モデルを作成する。次に、掃引空間算出部４６は、非常停止を実施したときの停止位置に対応するロボット１および作業ツール１７の３次元形状モデルを追加する。そして、掃引空間算出部４６は、これらの３次元モデルの輪郭を互いに接続することにより掃引空間を作成することができる。
【００６０】
図７に、本実施の形態におけるシミュレーション装置にてシミュレーションを実施したときの掃引空間の例を示す。本実施の形態のシミュレーション装置４０は、シミュレーションを実施した結果を表示する表示部３７を備える。また、シミュレーション装置４０は、予め定められた情報を入力したり、画像を操作したりするための入力部３６として、キーボード３８およびマウス３９を備える。
【００６１】
図１を参照して、ロボット１は、例えば、矢印８１ａ，８１ｂ，８１ｃ，８１ｄ，８１ｅに示すように、予め定められた方向に動くことができる。そして、それぞれの動作においてロボット１の位置および姿勢が変化する。図７を参照して、表示部３７には、ロボット１の動作に基づいて算出された掃引空間５３が表示されている。掃引空間５３は、動作プログラムによって駆動された時の構成部材が通過する領域の他に、任意の設定点で非常停止を実施したときに構成部材が通過する領域が含まれている。掃引空間５３は、ロボット１が動作プログラムに基づいて移動したときの掃引空間よりも大きくなる。
【００６２】
このように、掃引空間算出部４６は、ロボット１が非常停止を実施した後の停止位置に基づいて、停止位置に対応する構成部材の３次元モデルを作成する。そして、掃引空間算出部４６は、３次元モデルをつなぎ合わせることにより、掃引空間５３を形成することができる。
【００６３】
作業者は、推定された掃引空間５３に接触しないように他の装置や柵を配置することができる。例えば、作業者は、掃引空間５３に接触しないようにロボット１の周りの柵の位置を定めることができる。シミュレーション装置４０が算出する掃引空間５３は、非常停止が実施された後にロボット１が惰性にて動く領域が含まれている。このために、作業者は、柵により囲まれる作業領域が大きすぎたり小さすぎたりしない様に、適切な位置に柵を配置することができる。すなわち、ロボットシステムの周りに確保する安全な領域を適切な大きさにすることができる。
【００６４】
上記の実施の形態では、非常停止が実施された時の駆動軸の位置と、ロボットが完全に停止した時の駆動軸の位置に基づいて３次元モデルを作成している。シミュレーション装置４０は、更に、非常停止が実施された位置からロボットが完全に停止した位置までの動作経路を推定して、推定した動作経路の途中の点に対応する３次元モデルを追加することができる。
【００６５】
図８に、非常停止を実施してからの経過時間と予め選定された駆動軸の動作速度との関係を説明するグラフを示す。非常停止を実施してから駆動軸の動作速度が零になるまで、負の加速度が生じる。本実施の形態においては、この負の加速度は一定であると仮定する。すなわち、経過時間に対する動作速度の傾きは一定であると仮定する。
【００６６】
図８に示す例では、経過時間が零の時に非常停止を実施している。速度ｖｉは非常停止を実施したときの駆動軸の動作速度である。経過時間ｔｓにおいて、駆動軸の動作速度が零になっている。この時に、駆動軸の変化量は、グラフ、動作速度の軸、および経過時間の軸に囲まれる面積に相当する。
【００６７】
図９に、駆動軸における変化量を推定する制御を説明するグラフを示す。例えば、ロボット１が停止するまでの期間中に、経過時間ｔ１を設定することができる。非常停止を実施してから経過時間ｔ１までの変化量は、斜線にて示された台形の部分の面積に相当する。停止位置推定部４５は、非常停止を実施してからロボット１が停止するまでの動作経路を分割して、新たな設定点を設定することができる。例えば、経過時間ｔ１に対応する設定点を設定することができる。そして、停止位置推定部４５は、新たに設定した設定点において、非常停止を実施してからの経過時間に基づいて、駆動軸における変化量を算出することができる。停止位置推定部４５は、この計算をそれぞれの駆動軸ごとに行うことができる。
【００６８】
掃引空間算出部４６は、新たに設定した設定点におけるロボット１および作業ツール１７の三次元モデルを追加し、掃引空間を算出することができる。この制御を実施することにより、非常停止を実施してからロボット１が停止するまでの掃引空間をより正確に算出することができる。
【００６９】
ロボット１の非常停止を実施してからロボット１が停止するまでの期間において、新たな設定点を設定する方法については、任意の方法を採用することができる。例えば、図９においては、経過時間ｔｓの半分の時間において新たな設定点を追加しているが、この形態に限られず、経過時間ｔｓを任意の時間間隔で分割することができる。
【００７０】
また、本実施の形態では、駆動軸における動作速度が一定の加速度にて減少すると仮定したが、この形態に限られず、実験などにより動作速度の減少傾向を予め取得し、この減少傾向を用いて駆動軸における変化量を算出しても構わない。
【００７１】
本実施の形態の第１のロボットシステムにおいては、ロボット１が床面２０に固定されている。一方で、ロボットシステムでは、ロボット１が支持部材に載置され、支持部材が移動する場合がある。すなわち、ロボットシステムでは、ロボット全体が移動する場合がある。そして、ロボット１の支持部材についても非常停止を実施する場合がある。次に、ロボット全体が移動するロボットシステムについて説明する。
【００７２】
図１０に、本実施の形態における第２のロボットシステムの概略平面図を示す。第２のロボットシステムは、ロボット１を支持する支持部材としての回転テーブル３を備える。回転テーブル３は、床面に固定されている。ロボット１のベース部１９は、回転テーブル３に固定されている。回転テーブル３は、予め定められた回転軸の周りにロボット１の全体を回転するように形成されている。図１０に示す例においては、回転テーブル３の回転軸と、ロボット１の旋回部１１の第１の駆動軸とが一致するように形成されている。
【００７３】
本実施の形態の回転テーブル３は、ロボット制御装置２に制御されている。回転テーブル３を駆動するモータには、回転位置検出器が配置されている。回転位置検出器の出力は、ロボット制御装置２に送信される。
【００７４】
図１０には、回転テーブル３の駆動が開始した時のロボット１の初期の位置６１ａと、回転テーブル３の非常停止が実施された後に回転テーブル３が完全に停止したときのロボット１の位置６１ｃが示されている。第２のロボットシステムにおいては、ロボット１が停止している状態においても、回転テーブル３が駆動することにより、ロボット１が回転移動する。シミュレーション装置４０は、回転テーブル３が動作プログラムに基づいて駆動した時の掃引空間および回転テーブル３が非常停止を実施した時の掃引空間を、ロボット１が動作する場合と同様の方法により算出することができる。
【００７５】
シミュレーション装置４０には、回転テーブル３の３次元形状データが入力される。そして、作業者は、回転テーブル３の回転軸を駆動軸として設定する。また、回転テーブル３の駆動軸が非常停止を実施した場合について、図６に示すような駆動軸の動作速度および作業ツールの重量に対する駆動軸における変化量の関係を求めておくことができる。
【００７６】
シミュレーション装置４０は、ロボット１が動作した場合の掃引空間に加えて、回転テーブル３が動作したときの掃引空間を算出することができる。例えば、ロボット１が停止している状態においても、回転テーブル３が矢印８７に示すように駆動すると、ロボット１のアーム１２ａ，１２ｂは、矢印８４に示すように移動する。
【００７７】
シミュレーション装置４０は、旋回部１１、アーム１２ａ，１２ｂ、手首部１６および作業ツール１７による掃引空間５１に加えて、ベース部１９による掃引空間５４を算出することができる。特に、シミュレーション装置４０は、ロボット１が緊急停止を実施したときの掃引空間に、回転テーブル２が緊急停止を実施したときの掃引空間を加算して、全体の掃引空間を算出することができる。
【００７８】
図１１に、本実施の形態における第３のロボットシステムの概略平面図を示す。第３のロボットシステムは、ロボット１を支持する支持部材としての走行台５を備える。ロボット１は、走行台５に固定されている。走行台５は、レール４に沿って移動するように形成されている。本実施の形態の走行台５の駆動軸は、直動軸である。
【００７９】
本実施の形態の走行台５は、ロボット制御装置２に制御されている。走行台５を駆動するモータには、回転位置検出器が配置されている。回転位置検出器の出力は、ロボット制御装置２に送信される。回転位置検出器の出力により、走行台５の位置を算出することができる。
【００８０】
図１１には、走行台５の移動が開始した時のロボット１の初期の位置６１ａと、走行台５の非常停止が実施された後に完全に走行台５が停止したときのロボット１の位置６１ｃが示されている。
【００８１】
第３のロボットシステムにおいては、ロボット１が停止している状態においても、走行台５が駆動することにより、ロボット１が直線的に移動する。シミュレーション装置４０は、走行台５が駆動した時の掃引空間および走行台５が非常停止を実施した時の掃引空間を、ロボット１が動作する場合と同様の方法により算出することができる。
【００８２】
第３のロボットシステムにおいては、シミュレーション装置４０に走行台５の３次元形状データが入力される。作業者は、走行台５の直動軸を駆動軸として設定する。また、走行台５が非常停止を実施した場合について、図６に示すような駆動軸の動作速度および作業ツールの重量に対する駆動軸における変化量の関係を求めておくことができる。
【００８３】
シミュレーション装置４０は、ロボット１が動作した場合の掃引空間に加えて、走行台５が動作したときの掃引空間を算出することができる。例えば、ロボット１が停止している状態においても、走行台５が矢印８５に示すように移動すると、ロボット１は、矢印８６に示すように移動する。シミュレーション装置４０は、ロボット１および作業ツール１７による掃引空間５５および走行台５による掃引空間５６を算出することができる。特に、シミュレーション装置４０は、ロボット１が緊急停止を実施したときの掃引空間に、走行台５が緊急停止を実施したときの掃引空間を加算して、全体の掃引空間を算出することができる。
【００８４】
このように、ロボットシステムがロボット１を移動するための支持部材を備える場合にも、シミュレーション装置は、支持部材の駆動軸を設定し、支持部材が非常停止を実施した場合における掃引空間を算出することができる。そして、支持部材が通常の経路を移動した場合の掃引空間に非常停止を実施した時の掃引空間を加算して、支持部材が動作した場合の掃引空間を算出することができる。
【００８５】
なお、ロボット１を移動する支持部材としては、上記の回転テーブルおよび走行台に限られず、ロボット１の全体を移動することができる任意の支持部材を採用することができる。
【００８６】
本実施の形態における状態検出器は、それぞれのモータに取り付けられた回転角を検出する回転位置検出器であるが、この形態に限られず、状態検出器は、駆動軸において変化する位置を検出可能な任意の検出器を採用することができる。例えば、駆動軸が直動軸の場合には、状態検出器は、構成部材の位置を検出するリニアスケール等を含んでいても構わない。
【００８７】
本実施の形態においては、多関節ロボットを例示して説明したが、この形態に限られず、ロボットの関節部は１個であっても構わない。
【００８８】
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、特許請求の範囲に示される実施の形態の変更が含まれている。
【符号の説明】
【００８９】
１    ロボット
２    ロボット制御装置
３    回転テーブル
５    走行台
１７    作業ツール
２５    動作プログラム
３１    ３次元形状データ
３２    重量データ
４０    シミュレーション装置
４１    形状取得部
４２    重量取得部
４３    位置取得部
４４    速度取得部
４５    停止位置推定部
４６    掃引空間算出部
４９    変化量取得部
５１，５２，５３，５４，５５，５６    掃引空間
【図１】
0006444908.tif 000002
【図２】
0006444908.tif 000003
【図３】
0006444908.tif 000004
【図４】
0006444908.tif 000005
【図５】
0006444908.tif 000006
【図６】
0006444908.tif 000007
【図７】
0006444908.tif 000008
【図８】
0006444908.tif 000009
【図９】
0006444908.tif 000010
【図１０】
0006444908.tif 000011
【図１１】
0006444908.tif 000012