(57)【特許請求の範囲】
【請求項１】
回転動作またはスライド動作する可動部を備えたロボットシステムにおいて前記可動部の動作を制御するロボットシステムの制御装置であって、
前記可動部の動作点が目標点に移動する際の移動速度の経時変化を示す速度パターンと現在時刻とに基づいて所定の制御周期ごとに前記可動部に対して次に指令すべき次回位置を算出する次回位置算出手段と、
前記可動部が最大動作速度で動作しているときに予め定められた減速度内で停止可能な時間を示す予め求められた最大減速時間と前記速度パターンと現在時刻とを用いて、現時点以降も当該速度パターンに従って前記可動部の動作点が移動するものとして、前記所定の制御周期ごとに、現時点から少なくとも前記最大減速時間だけ経過した時刻において前記可動部に対して次に指令すべき前記動作点の位置を未来位置として算出する未来位置算出手段と、
前記可動部の動作中に、前記可動部の動作限界を示す予め定められた位置座標に基づいて、前記算出された未来位置が前記動作限界を越えたか否かを判別する動作限界判別手段と、
前記可動部の動作中に前記未来位置が前記動作限界を越えたと判別された場合に、現時点から前記可動部を減速停止させる指令を生成する停止制御手段と、
前記可動部の動作中に前記未来位置が前記動作限界を越えていないと判別された場合に、前記可動部を前記算出された次回位置まで動作させる指令を生成する可動部制御手段とを備えることを特徴とするロボットシステムの制御装置。
【請求項２】
前記可動部の最大動作速度と、前記予め定められた減速度とに基づいて前記最大減速時間を算出する最大減速時間算出手段をさらに備えることを特徴とする請求項１に記載のロボットシステムの制御装置。
【請求項３】
前記未来位置算出手段は、
現時点から前記制御周期の整数倍の時間と前記最大減速時間との和だけ経過した時刻において前記可動部に対して次に指令すべき前記動作点の位置を示す未来位置を算出することを特徴とする請求項１または請求項２に記載のロボットシステムの制御装置。
【請求項４】
回転動作またはスライド動作する可動部を備えたロボットシステムにおいて前記可動部の動作を制御するロボットシステムの制御装置の制御方法であって、
前記制御装置は、
前記可動部の動作点が目標点に移動する際の移動速度の経時変化を示す速度パターンと現在時刻とに基づいて所定の制御周期ごとに前記可動部に対して次に指令すべき次回位置を算出する次回位置算出ステップと、
前記可動部が最大動作速度で動作しているときに予め定められた減速度内で停止可能な時間を示す予め求められた最大減速時間と前記速度パターンと現在時刻とを用いて、現時点以降も当該速度パターンに従って前記可動部の動作点が移動するものとして、前記所定の制御周期ごとに、現時点から少なくとも前記最大減速時間だけ経過した時刻において前記可動部に対して次に指令すべき前記動作点の位置を未来位置として算出する未来位置算出ステップと、
前記可動部の動作中に、前記可動部の動作限界を示す予め定められた位置座標に基づいて、前記算出された未来位置が前記動作限界を越えたか否かを判別する動作限界判別ステップと、
前記動作限界判別ステップで前記未来位置が前記動作限界を越えたと判別された場合に、現時点から前記可動部を減速停止させる指令を生成する停止制御ステップと、
動作限界判別ステップで前記未来位置が前記動作限界を越えていないと判別された場合に、前記可動部を前記算出された次回位置まで動作させる指令を生成する可動部制御ステップとを実行することを特徴とするロボットシステムの制御方法。
【請求項５】
回転動作またはスライド動作する可動部を備えたロボットシステムにおいて前記可動部の動作を制御するために、コンピュータを、
前記可動部の動作点が目標点に移動する際の移動速度の経時変化を示す速度パターンと現在時刻とに基づいて所定の制御周期ごとに前記可動部に対して次に指令すべき次回位置を算出する次回位置算出手段、
前記可動部が最大動作速度で動作しているときに予め定められた減速度内で停止可能な時間を示す予め求められた最大減速時間と前記速度パターンと現在時刻とを用いて、現時点以降も当該速度パターンに従って前記可動部の動作点が移動するものとして、前記所定の制御周期ごとに、現時点から少なくとも前記最大減速時間だけ経過した時刻において前記可動部に対して次に指令すべき前記動作点の位置を未来位置として算出する未来位置算出手段、
前記可動部の動作中に、前記可動部の動作限界を示す予め定められた位置座標に基づいて、前記算出された未来位置が前記動作限界を越えたか否かを判別する動作限界判別手段、
前記可動部の動作中に前記未来位置が前記動作限界を越えたと判別された場合に、現時点から前記可動部を減速停止させる指令を生成する停止制御手段、
前記可動部の動作中に前記未来位置が前記動作限界を越えていないと判別された場合に、前記可動部を前記算出された次回位置まで動作させる指令を生成する可動部制御手段、
として機能させることを特徴とするロボットシステムの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステムの制御装置に係り、特に、溶接ロボットやその周辺装置の動作範囲を制限するロボットシステムの制御装置、制御方法およびそのプログラムに関するものである。
【背景技術】
【０００２】
従来、産業用口ボットや位置合わせ装置（ポジショナ）等の周辺装置とそれらの制御装置とからなるロボットシステムにおいて、例えば産業用口ボットのアーム等のリンク（可動部）の継ぎ目である各関節の動作範囲に制限が設けられている場合が多い。動作範囲を制限する方法として、例えば関節の動作限界を示す位置に、アーム等のリンクがそれ以上移動しないように物理的なストッパが設けられる場合がある。この場合、関節が限界位置までの動作を行う範囲を越えて動作すると、ストッパに衝突することによって過大な力が発生し、この力によって、産業用口ボットや周辺装置を構成する各種機器が振動するので、各種機器が破損したり位置ずれが生じたりする虞がある。
【０００３】
また、ストッパを設けつつも、ロボットの制御装置によって、リンク（可動部）が限界位置までの動作を行う範囲を越えたか否かを監視し、越えた場合に関節の動作を減速停止させてストッパに当接しないようにする方法もある。しかし、この方法では、限界位置までの動作を行う範囲とストッパとを隔てるために、減速移動を十分に行うことのできる程の幅を有した緩衝領域を設けていないと、関節の動作が減速されないままリンクがストッパに激突する事態が生じる場合がある。
【０００４】
このような事態を回避するために、確実に停止させることを前提として、関節についての動作中の現在位置と、現在位置から減速して停止するときの停止予定位置とを計算し、停止予定位置が限界位置までの動作を行う範囲を越えたか否かをチェックする機構を設けた制御装置が知られている（例えば、特許文献１参照）。特許文献１に記載されたロボットの制御装置は、停止予定位置が限界位置までの動作を行う範囲を越えていると判別した場合には、すぐに減速を開始させて、動作限界の手前で停止させる。このとき、この制御装置は、関節の動作速度を時々刻々把握し、動作速度に応じて減速を開始する位置を変えることで動作限界の手前に予め指定した位置の近傍に確実に停止させる。
【特許文献１】特開２０００−１９０２６２号公報（段落００２５〜段落００３３、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
産業用ロボットやその周辺装置の動作範囲を制限する際に、例えば溶接ロボットの溶接トーチ先端のようなロボットツール先端などの点やポジショナ等の周辺装置上の点が、座標空間上の動作範囲として予め定められた直方体内や円筒内の仮想の所定空間領域から出ないように指定される場合がある。しかしながら、特許文献１に記載されたロボットの制御装置は、関節角の動作範囲を制限することとしており、ロボットツール先端などの点の動作範囲を所定空間領域内に制限するためには用いることができない。
【０００６】
また、特許文献１に記載された制御方法では、サンプリング時間（制御周期）毎に、動作する関節すべての停止予定位置を計算する必要がある。この方法では、停止予定位置を計算するための速度パターンとして単純な台形パターンを利用している。しかしながら、速度パターンとしてＳ字カーブ等を用いた場合などには、計算量が比較的多くなってしまう。したがって、Ｓ字カーブ等の速度パターンを用いた場合などには、動作する関節すべての停止予定位置の計算をサンプリング時間毎に繰り返すことによって停止予定位置が限界位置までの動作を行う範囲を越えているか否かを判別することは現実的には困難である。つまり、特許文献１に記載された制御方法では、可動部を動作範囲内に停止させる制御に要する計算量が多いという問題がある。
【０００７】
そこで、本発明では、前記した問題を解決し、ロボットシステムにおいて、可動部を動作範囲内に停止させる制御に要する計算量を低減することのできるロボットシステムの制御装置、制御方法およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記目的を達成するために創案されたものであり、本発明のうち請求項１に記載のロボットシステムの制御装置は、回転動作またはスライド動作する可動部を備えたロボットシステムにおいて前記可動部の動作を制御するロボットシステムの制御装置であって、前記可動部の動作点が目標点に移動する際の移動速度の経時変化を示す速度パターンと現在時刻とに基づいて所定の制御周期ごとに前記可動部に対して次に指令すべき次回位置を算出する次回位置算出手段と、前記可動部が最大動作速度で動作しているときに予め定められた減速度内で停止可能な時間を示す予め求められた最大減速時間と前記速度パターンと現在時刻とを用いて、現時点以降も当該速度パターンに従って前記可動部の動作点が移動するものとして、前記所定の制御周期ごとに、現時点から少なくとも前記最大減速時間だけ経過した時刻において前記可動部に対して次に指令すべき前記動作点の位置を未来位置として算出する未来位置算出手段と、前記可動部の動作中に、前記可動部の動作限界を示す予め定められた位置座標に基づいて、前記算出された未来位置が前記動作限界を越えたか否かを判別する動作限界判別手段と、前記可動部の動作中に前記未来位置が前記動作限界を越えたと判別された場合に、現時点から前記可動部を減速停止させる指令を生成する停止制御手段と、前記可動部の動作中に前記未来位置が前記動作限界を越えていないと判別された場合に、前記可動部を前記算出された次回位置まで動作させる指令を生成する可動部制御手段とを備えることを特徴とする。
【０００９】
かかる構成によれば、ロボットシステムの制御装置は、可動部に対して動作点の次回位置を算出すると共に、現時点から可動部が最大動作速度で動作していても停止可能な時間以上経過した時刻において指令すべき動作点の未来位置を算出する。ここで、動作点は、例えば、可動部の所定地点の位置に対応した可変値により自位置を示す仮想的な点である。このような動作点として、ロボットツールの先端の位置に対応した可変値として対応する関節角度を示す点、ロボットツールの先端点、周辺装置上の点、周辺装置上に載せられたワーク上の点などを挙げることができる。また、未来位置は、次回位置と同様な方法で計算することができる。そのため、従来は必要であった、現在位置から停止予定位置に至るまでの移動に係る計算を省略することができ、計算量を従来よりも低減することができる。そして、ロボットシステムの制御装置は、可動部の動作中に未来位置が動作限界を越えたか否かを判別し、越えた場合に現時点から可動部を減速停止させる。現在位置から未来位置まで移動するために必要な時間は、可動部が最大動作速度で動作しているときに停止するまでの時間以下なので、可動部は動作限界に至るまでに停止する。また、ロボットシステムの制御装置は、未来位置が動作限界を越えていなければ、可動部に限界位置までの動作を行わせる。特に、可動部が、限界位置までの動作を行う範囲と動作限界との間の領域に一旦進入して動作限界を越えることなく再び限界位置までの動作を行う範囲に戻る場合に、可動部が停止することを防止できる。この場合には、可動部は上述した領域を減速することなく通過するので、限界位置までの動作を行う範囲を拡張したことと同等の効果を奏することとなる。
【００１０】
また、請求項２に記載のロボットシステムの制御装置は、請求項１に記載のロボットシステムの制御装置であって、前記可動部の最大動作速度と、前記予め定められた減速度とに基づいて前記最大減速時間を算出する最大減速時間算出手段をさらに備えることを特徴とする。
【００１１】
かかる構成によれば、ロボットシステムの制御装置は、動作開始前に、最大減速時間を算出しておくことにより、制御周期毎の計算において、従来のように減速までに必要な距離計算を行う必要がなくなるため、計算量を削減できる。また、最大減速時間を予め算出することにより、制御周期毎の計算において必要な計算量を速度パターンによらずに一定にすることができる。つまり、制御周期毎の計算において、速度パターンとして台形パターンを用いてもＳ字カーブをもった速度パターンを用いても計算量が変わらないこととなる。
【００１２】
また、請求項３に記載のロボットシステムの制御装置は、請求項１または請求項２に記載のロボットシステムの制御装置であって、前記未来位置算出手段が、現時点から前記制御周期の整数倍の時間と前記最大減速時間との和だけ経過した時刻において前記可動部に対して次に指令すべき前記動作点の位置を示す未来位置を算出することを特徴とする。
【００１３】
かかる構成によれば、ロボットシステムの制御装置は、制御周期の整数倍の時間を最大減速時間に加算するので、計算を容易に行うことができると共に、そのときの未来位置を用いることにより、動作限界よりも限界位置までの動作を行う範囲により近い位置に、ある程度の余裕をもって停止させることができる。ここで、１制御周期と最大減速時間との和を用いれば、余裕を持ちつつ可動部が減速せずに動作を行うことのできる範囲を最大限に拡張することが可能となるので好ましい。
【００１４】
また、請求項４に記載のロボットシステムの制御方法は、回転動作またはスライド動作する可動部を備えたロボットシステムにおいて前記可動部の動作を制御するロボットシステムの制御装置の制御方法であって、前記制御装置が、前記可動部の動作点が目標点に移動する際の移動速度の経時変化を示す速度パターンと現在時刻とに基づいて所定の制御周期ごとに前記可動部に対して次に指令すべき次回位置を算出する次回位置算出ステップと、前記可動部が最大動作速度で動作しているときに予め定められた減速度内で停止可能な時間を示す予め求められた最大減速時間と前記速度パターンと現在時刻とを用いて、現時点以降も当該速度パターンに従って前記可動部の動作点が移動するものとして、前記所定の制御周期ごとに、現時点から少なくとも前記最大減速時間だけ経過した時刻において前記可動部に対して次に指令すべき前記動作点の位置を未来位置として算出する未来位置算出ステップと、前記可動部の動作中に、前記可動部の動作限界を示す予め定められた位置座標に基づいて、前記未来位置算出ステップで算出された未来位置が前記動作限界を越えたか否かを判別する動作限界判別ステップと、前記動作限界判別ステップで前記未来位置が前記動作限界を越えたと判別された場合に、現時点から前記可動部を減速停止させる指令を生成する停止制御ステップと、動作限界判別ステップで前記未来位置が前記動作限界を越えていないと判別された場合に、前記可動部を前記次回位置算出ステップで算出された次回位置まで動作させる指令を生成する可動部制御ステップとを実行することを特徴とする。
【００１５】
かかる手順によれば、ロボットシステムの制御装置は、可動部に対して動作点の次回位置を算出し、現時点から可動部が最大動作速度で動作していても停止可能な時間以上経過した時刻において指令すべき動作点の未来位置を算出する。そして、ロボットシステムの制御装置は、可動部の動作中に未来位置が動作限界を越えたか否かを判別し、越えた場合に現時点から可動部を減速停止させ、越えていない場合、限界位置までの動作を行わせる。
【００１６】
また、請求項５に記載の制御プログラムは、回転動作またはスライド動作する可動部を備えたロボットシステムにおいて前記可動部の動作を制御するために、コンピュータを、前記可動部の動作点が目標点に移動する際の移動速度の経時変化を示す速度パターンと現在時刻とに基づいて所定の制御周期ごとに前記可動部に対して次に指令すべき次回位置を算出する次回位置算出手段、前記可動部が最大動作速度で動作しているときに予め定められた減速度内で停止可能な時間を示す予め求められた最大減速時間と前記速度パターンと現在時刻とを用いて、現時点以降も当該速度パターンに従って前記可動部の動作点が移動するものとして、前記所定の制御周期ごとに、現時点から少なくとも前記最大減速時間だけ経過した時刻において前記可動部に対して次に指令すべき前記動作点の位置を未来位置として算出する未来位置算出手段、前記可動部の動作中に、前記可動部の動作限界を示す予め定められた位置座標に基づいて、前記算出された未来位置が前記動作限界を越えたか否かを判別する動作限界判別手段、前記可動部の動作中に前記未来位置が前記動作限界を越えたと判別された場合に、現時点から前記可動部を減速停止させる指令を生成する停止制御手段、前記可動部の動作中に前記未来位置が前記動作限界を越えていないと判別された場合に、前記可動部を前記算出された次回位置まで動作させる指令を生成する可動部制御手段として機能させることを特徴とする。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
【発明の効果】
【００１７】
本発明のロボットシステムの制御装置、制御方法およびそのプログラムによれば、可動部を動作範囲内に停止させる制御に要する計算量を低減することができる。また、限界位置までの動作を行う範囲を従来よりも拡張することが可能である。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明のロボットシステムの制御装置を実施するための最良の形態（以下「実施形態」という）について説明する。
［ロボットシステムの構成］
図１は、ロボットシステムを模式的に示す構成図である。ロボットシステム１は、回転動作またはスライド動作する可動部を備えている。このロボットシステム１は、図１に示すように、主として、マニピュレータ（アーク溶接ロボット）２と、制御装置（ロボットシステムの制御装置）３と、教示ペンダント４とを備えている。
【００１９】
マニピュレータ（アーク溶接ロボット）２は、例えば、６軸構成の垂直多関節型の溶接ロボットであり、マニピュレータ２の手首部分には、可動部としての溶接トーチ５が取り付けられている。マニピュレータ２は、制御装置３からの指令に基づいて内部のマニピュレータモータＭ（図２参照）の動作により、マニピュレータ２の各関節を動かすことにより、溶接トーチ５を所定位置に移動させることができる。なお、本実施形態では、教示プログラムまたはインチング指令に基づいて、制御装置３は、マニピュレータ２に指令を出力する。
【００２０】
溶接トーチ５は、溶接ワイヤをワークＷの被溶接部に向けて送り出すものである。この送り出された溶接ワイヤと被溶接部との間にアークが形成されることで溶接が行われる。溶接トーチ５は、図示しないワイヤ送給装置を介して溶接電源Ｐ（図２参照）と接続されており、この溶接電源Ｐは制御装置３に接続されている。そして、制御装置３が溶接指令信号を溶接電源Ｐに出力すると、溶接電源Ｐからの給電により図示しないワイヤ送給装置が駆動されて、溶接トーチ５に溶接ワイヤが送給される。
【００２１】
制御装置（ロボットシステムの制御装置）３は、マニピュレータ２と、教示ペンダント４とに接続されており、教示ペンダント４から入力されたコマンド（インチング指令）または予め記憶された所定の教示プログラムに基づいて、マニピュレータ２、特に、可動部としての溶接トーチ５を制御するものである。
教示ペンダント４は、マニピュレータ２の教示作業の際に、被溶接部の溶接経路や溶接作業条件等を入力するために使用される。
【００２２】
［制御装置の構成］
図２は、図１に示した制御装置の構成を模式的に示すブロック図である。制御装置３は、例えば、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）、入出力インタフェース等から構成される。また、制御装置３は、後記する各種機能を実現するために、図２に示すように、教示プログラム記憶手段１０と、パラメータ記憶手段２０と、次回位置制御手段３０と、最大減速時間算出手段４０と、未来位置算出手段５０と、動作限界判別手段６０と、マニピュレータ制御手段（可動部制御手段）７０と、溶接制御手段８０とを備えている。以下、図２を参照（適宜図１参照）して制御装置３の構成を説明する。
【００２３】
＜教示プログラム記憶手段＞
教示プログラム記憶手段１０は、教示プログラムを記憶するものであり、例えば、一般的なメモリやハードディスク等から構成される。教示プログラムには、例えば、マニピュレータ２に取り付けられた溶接トーチ５の移動する目標位置と補間方式、指定速度が記述されている。教示プログラム記憶手段１０に記憶された教示プログラムは、予め作成されたものであるが、教示ペンダント４からの入力操作またはパーソナルコンピュータ等の接続機器（図示しない）からの入力操作によって編集可能なものである。
【００２４】
＜パラメータ記憶手段＞
パラメータ記憶手段２０は、各種パラメータを記憶するものであり、例えば、一般的なメモリやハードディスク等から構成される。各種パラメータは、例えば、動作限界の位置座標、最大動作速度（目標速度）「Ｖmax」、最大加速度および最大減速度（加減速度）「Ａcc」、加速パターンおよび減速パターン（速度パターン）「Ｔaなど」、制御周期τ等を含む。例えば、最大動作速度のパラメータは軸毎に指定されている。
【００２５】
＜動作限界＞
本実施形態では、動作限界は、マニピュレータ２に取り付けられた溶接トーチ５の先端に対応して予め設定される。図３は、動作限界を指定する一例として、溶接トーチの先端の位置を、仮想の直方体の範囲で制限する例を模式的に示す図である。動作限界内の動作範囲は、マニピュレータ２が教示データ作成時に用いる座標系で記述されＸＹＺ方向それぞれの上限値、下限値で指定される。ここでは、３次元座標空間上に、縦（Ｘ方向）の長さが「ａ」、横（Ｙ方向）の長さが「ｂ」、高さ（Ｚ方向）が「ｃ」である仮想の直方体３００を想定し、溶接トーチの先端３１０は、仮想の直方体３００の内部空間領域だけで動作が許可されているものとする。この仮想の直方体３００には、Ｘ＋方向、Ｘ−方向、Ｙ＋方向、Ｙ−方向、Ｚ＋方向、およびＺ−方向に動作限界（上限値または下限値）が設定されている。例えば、図３に示すように、ＸＹ平面上にＺ−方向の動作限界を設定し、Ｘ軸上に設定された溶接線の所定の溶接開始位置から溶接終了位置までの長さを「ａ」に設定し、溶接線に対するウィービング方向の動作限界を「ｂ／２（Ｙ上限値）」、「−ｂ／２（Ｙ下限値）」のように設定することができる。これにより、溶接トーチの先端３１０の座標値が、パラメータで指定されている上下限範囲外とならないように制限することができる。
【００２６】
＜最大動作速度、加減速度、加減速パターン＞
本実施形態では、速度パターンの一例として図４に示す変形正弦速度パターンを使用する。この変形正弦速度パターンは、カム曲線として用いられるものである。ここでは、一例として、時刻ｔが「０」のときに、速度が「０」の状態から移動を開始した場合について説明する。図４に示す速度パターンは、時刻ｔが「０」から「Ｔs」に至るまでの加速区間４１０と、時刻ｔが「Ｔs」から「Ｔc」に至るまでの等速区間４２０と、時刻ｔが「Ｔc」から「Ｔt」に至るまでの減速区間４３０とを備えている。
【００２７】
加速区間４１０は、速度「０」から最大動作速度（目標速度）「Ｖmax」に向かって速度変化がＳ字カーブ（加速パターン）で表される。ここで、加速区間４１０における所定時刻「Ｔa」を想定する。加速区間４１０の前半の区間［０，Ｔa］において、速度ｖ（ｔ）は、式（１）で示され、加速区間４１０の後半の区間［Ｔa，Ｔs］において、速度ｖ（ｔ）は、式（２）で示される。そして、式（１）から式（７）により、加速区間４１０の速度ｖ（ｔ）は、最大動作速度Ｖmaxと加速度Ａccと移動時間Ｔsとで表すことができる。
【００２８】
【数１】
0004668251.tif 000002
【００２９】
図４に示す等速区間４２０では、速度の大きさが一定の最大動作速度「Ｖmax」である。減速区間４３０は、最大動作速度「Ｖmax」から速度「０」に向かって速度変化が加速区間４１０のＳ字カーブと対称な曲線（減速パターン）で表される。つまり、減速区間４３０の速度パターンは、加速区間４１０の速度パターン（波形の一部）を、時間軸に平行に「Ｔc−Ｔs」だけ移動した後で、時刻ｔ＝Ｔcを対称軸とした線対称な波形（左右を反転したもの）である。したがって、減速区間４３０の時刻「Ｔc」から「Ｔt」までの時間は、加速区間４１０の移動時間Ｔsと同じである。ここで、全区間［０，Ｔt］内の任意時刻Ｔnにおける現在位置から目標位置までの距離を「ｌｄ」とする。前記した式（１）または式（２）で算出された速度ｖ（ｔ）で示される加速パターンと時間軸とで挟まれた領域の面積「Ｓ」と、「ｌｄ」とが一致するように速度パターンを計画すれば、目標位置までの速度パターンとなる。また、任意時刻Ｔnにおける現在位置は、その任意時刻Ｔnまでの面積を求めることによって算出される。この現在位置は、制御周期τ毎に計算される。なお、パラメータ記憶手段２０（図２参照）には、次回位置制御手段３０で算出される動作点の次回位置を一時記憶する記憶領域と、この次回位置を示すモータ指令信号がモータに出力された後にこの次回位置をあらためて前回位置として保存する保存領域とを備えている。
【００３０】
図２に戻って、制御装置３の構成の説明を続ける。
＜次回位置制御手段＞
次回位置制御手段３０は、移動経路算出手段３１と、現在位置判別手段３２と、次回位置算出手段３３と、停止制御手段３４とを備えている。
移動経路算出手段３１は、現在位置と、教示プログラムにて指定された目標点と、指定速度および最大加速度とから、目標位置までの速度パターンを決定するものである。
現在位置判別手段３２は、現在位置が目標位置であるか否かを判別し、現在位置が目標位置である場合に処理を終了する。また、現在位置判別手段３２は、現在位置が目標位置ではない場合に、その旨を次回位置算出手段３３に出力する。
【００３１】
＜次回位置算出手段＞
次回位置算出手段３３は、マニピュレータ２に取り付けられた溶接トーチ５（可動部）の動作点が目標点に移動する際の移動速度の経時変化を示す速度パターンと現在時刻とに基づいて所定の制御周期ごとに溶接トーチ５（可動部）に対して次に指令すべき次回位置を算出するものである。ここで、動作点は、例えば、溶接トーチ５の所定地点の位置に対応した可変値により自位置を示す仮想的な点の位置である。本実施形態では、目標点は、教示プログラムまたはインチング指令で定められ、次回位置算出手段３３は、移動経路算出手段３１で決定された速度パターンの全区間［０，Ｔt］内の任意時刻Ｔnを現在時刻として、Ｔnにおける溶接トーチの先端位置（溶接トーチ先端の次回位置）を計算する。例えば、図４に示したＳ字カーブの速度パターンを用いた場合には、次回位置算出手段３３は、前記した式（１）または式（２）で算出された速度ｖ（ｔ）で示される加速パターンと、時間軸（横軸）と、速度軸（縦軸）と、任意時刻Ｔnとで囲まれた領域の面積を求めることで、任意時刻Ｔnにおける溶接トーチ先端の次回位置を算出する。また、次回位置算出手段３３は、計算の結果得られた動作点の次回位置に相当するモータ指令信号が出力された後に、この算出された次回位置をあらためて前回位置としてパラメータ記憶手段２０に保存する。
【００３２】
＜停止制御手段＞
停止制御手段３４は、マニピュレータ２に取り付けられた溶接トーチ５（可動部）の動作中に動作限界判別手段６０によって、後述する動作点の未来位置が動作限界を越えたと判別された場合に、現時点から溶接トーチ５を減速停止させる指令（以下、減速停止指令という）を生成するものである。この減速停止指令は、マニピュレータ制御手段７０に出力される。本実施形態では、停止制御手段３４は、動作限界判別手段６０により溶接トーチ先端の未来位置が動作限界を越えたと判定された場合に、現在時刻から、後述する最大減速時間Ｔfと１制御周期τとの和で表される時間（Ｔf＋τ）の間に減速して停止すればよいように設定されている。実際には溶接トーチ５は最大減速時間で停止可能なので、各軸の加速度が指定加速度を超えることなく、溶接トーチ５の動作範囲内で余裕をもって停止することができる。
【００３３】
＜最大減速時間算出手段＞
最大減速時間算出手段４０は、溶接トーチ５（可動部）の最大動作速度と、予め定められた減速度とに基づいて最大減速時間を算出するものである。本実施形態では、最大減速時間算出手段４０は、マニピュレータ２が動作する前に、パラメータ記憶手段２０から、指定された最大動作速度と減速度とを読み出して最大減速時間を予め算出する。最大減速時間Ｔfとは、最大動作速度で動作中の溶接トーチ５を停止させるために、マニピュレータのすべての軸毎にそれぞれ必要な時間のうちの最大値を示すものである。最大減速時間算出手段４０は、最大減速時間Ｔfを、制御周期τの倍数となるように計算する。これにより、最大減速時間Ｔfを容易に計算することができる。
【００３４】
＜未来位置算出手段＞
未来位置算出手段５０は、溶接トーチ５（可動部）が最大動作速度で動作しているときに予め定められた減速度内で停止可能な時間を示す予め求められた最大減速時間に基づいて、現時点から少なくとも最大減速時間だけ経過した時刻において次に指令すべき動作点の位置を未来位置として算出するものである。本実施形態では、未来位置算出手段５０は、現時点（時刻Ｔn）から１制御周期（τ）と最大減速時間（Ｔf）との和だけ経過した時刻「Ｔn＋Ｔf＋τ」において次に指令すべき動作点の位置を示す未来位置（溶接トーチ先端の未来位置）を、次回位置算出手段３３で用いた速度パターンにより算出する。なお、現時点から制御周期の整数倍（ｎ倍）の時間（ｎ×τ）と最大減速時間との和だけ経過した時刻「Ｔn＋Ｔf＋ｎ×τ」において未来位置を算出することも可能である。この場合には、溶接トーチ５を動作限界に対してさらに余裕をもって停止させることができる。
【００３５】
＜動作限界判別手段＞
動作限界判別手段６０は、溶接トーチ５（可動部）の動作中に、溶接トーチ５の動作限界を示す予め定められた位置座標に基づいて、算出された動作点の未来位置が動作限界を越えたか否かを判別するものである。本実施形態では、動作限界判別手段６０は、未来位置算出手段５０で算出した溶接トーチ先端の未来位置が、パラメータで指定された仮想の直方体（図３参照）の動作範囲内にあるか否かを判定する。なお、１つの動作点に対して複数の動作限界がある場合には、動作限界判別手段６０は、その動作点のそれぞれの動作限界に対して未来位置が動作限界を越えたか否かを判別する。
【００３６】
＜マニピュレータ制御手段＞
マニピュレータ制御手段（可動部制御手段）７０は、溶接トーチ５（可動部）の動作中に未来位置が動作限界を越えていないと判別された場合に、次回位置算出手段３３で算出された次回位置と、マニピュレータモータＭから出力されるモータ現在位置とに基づいて、マニピュレータモータＭの制御を行い、算出された次回位置で指定された位置にマニピュレータ２を移動させるものである。本実施形態では、マニピュレータ制御手段７０は、次回位置算出手段３３で算出された溶接トーチ先端の次回位置から、モータで駆動される軸毎の角度を算出し、算出した角度をモータ指令位置とする。ここで、溶接トーチ先端の次回位置から軸毎の角度を算出する方法は、任意である。本実施形態では、６軸構成の垂直多関節型のマニピュレータ２を用いているので、例えば、特定のリンクの位置や方向を満たすような関節角度を求める逆運動学（Inverse Kinematics：ＩＫ）を解くことにより、溶接トーチ先端の次回位置の位置座標を軸毎の角度（次回位置）へ変換し、算出した角度をモータ指令位置とすることができる。ここで、逆運動学は、多関節リンク構造を構成する関節の回転角度から各リンクの位置や姿勢を求める順運動学（Forward Kinematics：ＦＫ）とは逆方向に計算を行うものである。また、マニピュレータ制御手段７０は、停止制御手段３４から減速停止指令を受けた場合には、次回位置算出手段３３で算出された溶接トーチ先端の次回位置に対応したモータ指令位置を算出することを中断して、マニピュレータモータＭを減速停止させる制御信号をマニピュレータモータＭに出力する。
【００３７】
＜溶接制御手段＞
溶接制御手段８０は、溶接時に溶接指令信号を溶接電源Ｐに出力するものである。この溶接制御手段８０は、動作点が動作限界を越えた場合、すなわち、停止制御手段３４から減速停止指令を受けたときに、溶接トーチ５から溶接ワイヤが送り出されている状態の場合には、溶接ワイヤの送給停止指令（アークＯＦＦ指令）を溶接電源Ｐに出力する。
【００３８】
なお、制御装置３は、一般的なコンピュータを、前記した各手段として機能させる制御プログラムにより動作させることで実現することもできる。この制御プログラムは、通信回線を介して配布することも可能であるし、ＣＤ−ＲＯＭやフラッシュメモリ等の記録媒体に書き込んで配布することも可能である。
【００３９】
［制御装置の動作］
次に、制御装置３の動作について図５を参照（適宜図１ないし図４参照）して説明する。図５は、図２に示した制御装置の動作を示すフローチャートである。まず、マニピュレータ２が動作する前の準備段階として、予め制御装置３は、最大減速時間算出手段４０によって、最大減速時間を算出しておく（ステップＳ１）。そして、制御装置３は、移動経路算出手段３１によって、目標位置（目標点）までの移動経路を算出しておく（ステップＳ２）。
【００４０】
次に、マニピュレータ２が溶接動作する段階では、制御装置３は、教示プログラム記憶手段１０に記憶された教示プログラムまたは教示ペンダント４からのインチング指令に基づいて、次回位置算出手段３３によって、マニピュレータ２に取り付けられた溶接トーチ５の動作点の次回位置（溶接トーチ先端の次回位置）を算出する（ステップＳ３：次回位置算出ステップ）。そして、制御装置３は、未来位置算出手段５０によって、溶接トーチ先端の未来位置を、マニピュレータ２に取り付けられた溶接トーチ５の動作点の次回位置（溶接トーチ先端の次回位置）を算出すること（ステップＳ３）と同様にして算出する（ステップＳ４：未来位置算出ステップ）。
【００４１】
そして、制御装置３は、動作限界判別手段６０によって、溶接トーチ先端の未来位置が動作限界を越えたか否かを判別する（ステップＳ５：動作限界判別ステップ）。溶接トーチ先端の未来位置が動作限界を越えていない場合（ステップＳ５：Ｎｏ）、制御装置３は、次回位置算出手段３３によって、溶接トーチ先端の次回位置をマニピュレータ制御手段７０に出力し、マニピュレータ制御手段７０によって、溶接トーチ先端の次回位置からモータ指令位置を算出し、マニピュレータモータＭに出力する（ステップＳ６：可動部制御ステップ）。なお、次回位置算出手段３３は、出力した溶接トーチ先端の次回位置を前回位置として保存する。
【００４２】
続いて、制御装置３は、現在位置判別手段３２によって、溶接トーチ先端の現在位置が目標位置であるか否かを判別する（ステップＳ７）。溶接トーチ先端の現在位置が目標位置ではない場合（ステップＳ７：Ｎｏ）、制御装置３は、ステップＳ３に戻る。一方、溶接トーチ先端の現在位置が目標位置である場合（ステップＳ７：Ｙｅｓ）、制御装置３は、処理を終了する。
【００４３】
ステップＳ５において、溶接トーチ先端の未来位置が動作限界を越えている場合（ステップＳ５：Ｙｅｓ）、制御装置３は、停止制御手段３４によって、溶接トーチ５に対する減速停止指令をマニピュレータ制御手段７０および溶接制御手段８０に出力する（ステップＳ８：停止制御ステップ）。このとき、マニピュレータ制御手段７０は、マニピュレータモータＭを減速停止させる制御信号を出力するので、溶接トーチ５は減速して停止する。また、溶接制御手段８０は、溶接電源ＰにアークＯＦＦ指令を出力することにより、溶接トーチ５からの溶接ワイヤの送給が停止される。
【００４４】
［溶接トーチ先端の軌跡の具体例］
図６は、溶接トーチ先端の軌跡と動作限界線との関係を模式的に示す説明図である。
図６（ａ）に示す溶接トーチ先端の軌跡６００は、溶接トーチ先端が、図中破線上方の動作範囲の所定位置６０１から、動作限界線Ｌを一旦越えて再び動作範囲に戻る放物線である。ここで、動作限界線Ｌは、例えば、図３において、Ｙ−方向の動作限界としてのＹ下限値を示す直線Ｙ＝−ｂ／２を示す。ここで、動作限界線Ｌが壁等の物理的障壁を示す場合には衝突後の軌跡は異なるため、動作限界線Ｌを一旦越えた後の軌跡を仮想線で示した。このような軌跡６００で溶接トーチ先端が移動しようとする場合、仮に、従来の特許文献１に記載の方法をマニピュレータ２に適用したとすると、次のようになる。すなわち、マニピュレータ２の関節にブレーキをかけた場合に関節が停止する位置が通常動作範囲の限界位置（関節角度＝θLimit）を越えると演算されたときにマニピュレータモータに減速停止指令を出力し、関節角度がθLimitのときに関節が停止する。このとき、関節角度を溶接トーチ先端に置き換えてみると、溶接トーチ先端が、例えば、動作限界線Ｌまでの距離が「ｄ」である位置６０３に達したときに減速を開始し、動作限界線Ｌの手前の位置６０２で停止することになる。
【００４５】
図６（ｂ）に示す溶接トーチ先端の軌跡６１０は、溶接トーチ先端が、図中破線上方の動作範囲の所定位置６１１から、動作限界線Ｌに接近して動作限界線Ｌを越えずに動作限界線Ｌから遠ざかって図中破線上方の動作範囲に戻る放物線である。このような軌跡６１０で溶接トーチ先端が移動しようとする場合、仮に、従来の特許文献１に記載の方法を適用したとすると、次のようになる。すなわち、マニピュレータ２の関節にブレーキをかけた場合に関節が停止する位置が通常動作範囲の限界位置（関節角度＝θLimit）を越えると演算されたときにマニピュレータモータに減速停止指令を出力し、関節角度がθLimitのときに関節が停止する。このとき、関節角度を溶接トーチ先端に置き換えてみると、溶接トーチ先端が、例えば位置６１２に達したときに減速を開始し、動作限界線Ｌの手前の位置６１３で停止する場合がある。つまり、従来の方法では、間接角度の動きのみを考慮しており、溶接トーチ先端が動作限界線Ｌを越えようとしない場合でも溶接トーチの作動を停止させなければならない。
【００４６】
しかしながら、本実施形態では、図６（ｂ）に示す軌跡６１０において、例えば、現在位置が位置６１２であり、かつ、算出した未来位置が位置６１３である場合には、マニピュレータモータに減速停止指令は出力されることはない。したがって、本実施形態では、溶接トーチは、停止はおろか減速することなく、限界位置までの動作として通常と同様な動作を行うことができる。つまり、溶接トーチの動作範囲を従来よりも拡張することができる。なお、本実施形態では、図６（ａ）に示す軌跡６００において、例えば、現在位置が位置６０３であり、かつ、算出した未来位置が位置６０４である場合には、減速停止指令が出力されない。また、例えば、現在位置が位置６０４であり、かつ、算出した未来位置が位置６０２である場合には、減速停止指令が出力される。
【００４７】
本実施形態によれば、制御装置３は、溶接トーチ５が現時点から最大動作速度で動作していても停止可能な時間（最大減速時間）以上経過した時刻において指令すべき溶接トーチ先端の未来位置を算出し、溶接トーチ先端の未来位置が動作限界を越えた場合に現時点から溶接トーチ５を減速停止させる。これにより、動作を停止させることが必要なときに、現在位置から停止予定位置に至るまでの移動に係る計算をすることなく、従来よりも制御に必要な計算量を低減して速やかに動作を停止させることができる。また、制御装置３は、溶接トーチ先端の未来位置が動作限界を越えていなければ、溶接トーチ５に減速させずに限界位置までの動作を行わせるので、溶接トーチ５が限界位置までの動作を行う範囲を拡張することが可能となる。
【００４８】
以上、本発明の好ましい実施形態について説明したが、本発明は前記した実施形態に限定されるものではない。例えば、本実施形態では、動作点をマニピュレータ２に取り付けられた溶接トーチ５の先端としたが、例えば、関節角を示す点など、計算可能な点であればその他の移動点でも構わない。また、本実施形態では、動作点の動作範囲を示す仮想的な所定空間の形状を直方体として説明したが、例えば、円筒、多角形、球形等、動作範囲の内外を判断できる形状であればその他の形状でも構わない。
【００４９】
また、本実施形態では、制御装置３は、マニピュレータ２だけを制御するものとして説明したが、ロボットシステムを構成する回転動作またはスライド動作するリンク（可動部）を備えていれば、マニピュレータ２と共にワークを載置するポジショナなどの周辺装置を制御するようにしてもよい。この場合には、動作点を、ポジショナなどの周辺装置上の点、ポジショナ等に載置されたワーク上の点、そのワークから所定距離だけ離間した点としてもよい。また、本実施形態では、マニピュレータ２のリンク構造で説明したが、手先位置から関節角が計算可能であれば、リンク構造は特に限定されない。さらに、制御装置３が制御するロボットを、アーク溶接ロボット（マニピュレータ２）として説明したが、その他の産業用ロボットでもよい。
【００５０】
また、本実施形態では、速度パターンを、変形正弦速度パターンで説明したが、例えば、台形パターンなど、加速度と距離から移動時間が計算可能な任意の速度パターンを用いてもよい。また、本実施形態の制御装置３は、最大減速時間算出手段４０を備える構成としたが、この最大減速時間算出手段４０を備えることなく、別に求めた最大減速時間を外部から制御装置３に与えるパラメータとして扱ってもよい。この場合には、マニピュレータ２が動作する前の準備段階として最大減速時間を算出する（ステップＳ１）前処理時間を省くことができる。
【図面の簡単な説明】
【００５１】
【図１】ロボットシステムを模式的に示す構成図である。
【図２】本発明の実施形態に係るロボットシステムの制御装置の構成を模式的に示すブロック図である。
【図３】溶接トーチの先端の動作限界の一例を模式的に示す図である。
【図４】速度パターンの一例を示すグラフである。
【図５】図２に示した制御装置の動作を示すフローチャートである。
【図６】溶接トーチ先端の軌跡と動作限界線との関係を模式的に示す説明図である。
【符号の説明】
【００５２】
１      ロボットシステム
２      マニピュレータ（アーク溶接ロボット）
３      制御装置（ロボットシステムの制御装置）
４      教示ペンダント
５      溶接トーチ
１０    教示プログラム記憶手段
２０    パラメータ記憶手段
３０    次回位置制御手段
３１    移動経路算出手段
３２    現在位置判別手段
３３    次回位置算出手段
３４    停止制御手段
４０    最大減速時間算出手段
５０    未来位置算出手段
６０    動作限界判別手段
７０    マニピュレータ制御手段（可動部制御手段）
８０    溶接制御手段
Ｍ      マニピュレータモータ
Ｐ      溶接電源
Ｗ      ワーク
【図１】
0004668251.tif 000003
【図２】
0004668251.tif 000004
【図３】
0004668251.tif 000005
【図４】
0004668251.tif 000006
【図５】
0004668251.tif 000007
【図６】
0004668251.tif 000008