(57)【特許請求の範囲】
【請求項１】
第一の移動指令における減速を行っているときに第二の移動指令における加速を行い、第一の移動指令から第二の移動指令への移行を滑らかにする滑らか動作を行うロボットのプログラムを変更するロボットプログラム変更装置において、
ロボットの動作プログラムを記憶するプログラム記憶部と、
該プログラム記憶部に記憶された前記動作プログラムをシミュレーションにより実行したときの前記動作プログラムのサイクルタイムを初期サイクルタイムとして記憶し、前記動作プログラムの複数の教示点の位置を複数の初期教示点の位置として記憶すると共に前記複数の初期教示点の教示順序を初期教示順序として記憶する初期記憶部と、
該初期記憶部に記憶された前記複数の初期教示点の前記初期教示順序通りに前記ロボットを移動させた場合と比較して、前記複数の教示点のそれぞれの間における前記ロボットの移動時間の合計が小さくなるように、前記複数の教示点の教示順序を入替える順序入替部と、
該順序入替部により教示順序が入替えられた入替後動作プログラムをシミュレーションにより実行したときの前記ロボットのアーム先端の位置を所定時間毎に記憶するアーム先端位置記憶部と、
該アーム先端位置記憶部に記憶された所定時間毎の位置に基づいて作成される前記ロボットの軌跡と、前記初期記憶部に記憶された初期教示点との間のズレ量を前記初期教示点毎に算出する算出部と、
前記初期教示点と前記ロボットの軌跡との間の最短距離を形成する方向において、前記アーム先端位置記憶部に記憶された所定時間毎の前記アーム先端の位置が前記初期教示点から離間するように所定距離だけ移動させ、移動後において、前記算出部が算出した、前記アーム先端の位置に基づく新たなロボットの軌跡と前記初期教示点との間のズレ量が所定の許容値以下になるまで、前記入替後動作プログラムの前記教示点の位置調整を行う位置調整部と、
該位置調整部により調整された前記教示点を含む前記入替後動作プログラムをシミュレーションにより実行したときの前記入替後動作プログラムのサイクルタイムが前記初期記憶部に記憶された前記初期サイクルタイムよりも長い場合には、調整された前記教示点を前記初期教示点に変更して初期教示順序を採用する教示点変更部とを具備する、ロボットプログラム変更装置。
【請求項２】
前記順序入替部は、前記ロボットの各軸の移動角度を前記ロボットの各軸の回転速度で除算することにより、教示点入替前の前記プログラムおよび前記入替後動作プログラムにおける各教示点の間の移動時間を算出する移動時間算出部と、
前記動作プログラムにおける前記複数の教示点のうちの二つの教示点の教示順序を入替えると共に、前記教示点入替後において前記複数の教示点のそれぞれの間における前記ロボットの移動時間の合計から前記教示点入替前における前記ロボットの前記移動時間の合計を減算した偏差が許容値以下であるかどうかを評価する判定部と、
該判定部によって前記偏差が許容値以下であると判定された場合には前記教示点入替後の教示順序を採用すると共に、前記偏差が許容値以下でないと判定された場合には前記教示点入替前の教示順序を採用する順序採用部と、
該順序採用部により前記教示点入替後の教示順序または前記教示点入替前の教示順序が採用された後で前記許容値を所定量だけ小さくなるよう変更する許容値変更部と、
該許容値変更部により変更された前記許容値が所定の規定値になるまで、前記教示順序の入替作業を所定の最大試行回数の範囲で繰返す繰返部と、を含む、請求項１に記載のロボットプログラム変更装置。
【請求項３】
前記順序入替部は、前記動作プログラムの連続する三つの教示点の間における第一動作セグメントの移動ベクトルおよび第二動作セグメントの移動ベクトルのなす角度と、前記第二動作セグメントにおける移動時間とに基づいて、前記教示点の教示順序を入替えるようにした、請求項１に記載のロボットプログラム変更装置。
【請求項４】
前記算出部により算出された前記ズレ量が許容値を越えた場合には、前記位置調整部は、前記初期教示点から最短距離にある前記軌跡上における点から、前記初期教示点に向かうベクトル方向に一定距離だけ前記入替後動作プログラムの前記教示点を移動させて位置調整を行うようにした、請求項１から３のいずれか一項に記載のロボットプログラム変更装置。
【請求項５】
前記動作プログラムの前記教示点の位置修正を行う直前に、前記動作プログラムにおける前記ロボットの速度、加速度および滑らか度合のうちの少なくとも一つの指令値を、前記動作プログラムのサイクルタイムが短くなるように変更する変更部をさらに具備する請求項１から４のいずれか一項に記載のロボットプログラム変更装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットが所望の動作を行うようにロボットの動作プログラムを変更するロボットプログラム変更装置に関する。
【背景技術】
【０００２】
一般に、オフラインで作成されたロボットの動作プログラムは、そのまま現場で使用されることはほとんどなく、修正されてから使用されている。これは、オフライン上の世界とオンライン上（現場）の世界との間で、ワークとロボットの相対的位置関係やロボットの姿勢などが微妙に異なり、ズレが生じるためである。
【０００３】
特許文献１に記載されるように、ロボットのモータの負荷をシミュレーションにより求め、求められた負荷に基づいて動作プログラムの指令速度または指令加速度を変更し、前述したズレを解消することが行われている。
【０００４】
ところで、一つの動作命令による或る教示点に位置決めするために減速を開始すると共に次の動作命令により他の教示点に移動するために加速を開始して二つの動作命令による移動を滑らかに繋ぐ滑らか動作を教示する場合がある。
【０００５】
図１２Ａ〜図１２Ｃは滑らか動作を説明するための図である。滑らか動作を教示しない場合には、図１２Ａに示されるように、第一ブロックＢ１の移動指令における期間Ｄ１で所定の加速度で加速すると共に期間Ｄ２で同様に減速して、或る教示点Ｐに到達する。その後、第二ブロックＢ２の移動指令における期間Ｄ３で再び加速して、他の教示点に向かって移動開始する。この場合には、図１２Ｃにおいて実線で示される軌跡を通ることになる。
【０００６】
これに対し、滑らか動作を教示した場合には、図１２Ｂに示されるように、期間Ｄ２の開始時に第一ブロックＢ１の減速開始と共に第二ブロックＢ２の加速開始とを行うことになる。このため、期間Ｄ２の終了時に第一ブロックＢ１の減速動作が終了すると共に、第二ブロックＢ２の加速動作が終了する。従って、滑らか動作を教示した場合には、図１２Ｃに示されるように第一ブロックＢ１から第二ブロックへの移行を円滑にすることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2007-54942号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
図１２Ｃに実線で示されるように、滑らか動作を教示しない場合には第一ブロックの動作指令により、ロボットは教示点Ｐに到達する。しかしながら、滑らか動作を教示した場合には、図１２Ｃに破線で示されるように、ロボットが教示点Ｐを通過しない軌跡が形成されることになる。従って、滑らか動作を教示すると、目標動作経路に対してロボットの実際の動作経路がズレる場合がある。
【０００９】
これに対し、滑らか動作を教示しない場合には、教示点が互いに最短距離で結ばれ、目標動作経路に対してロボットの実際の動作経路がズレることはない。しかしながら、滑らか動作を教示しない場合には、図１２Ａと図１２Ｂとを比較して分かるように、サイクルタイムが長くなることがある。
【００１０】
本発明はこのような事情に鑑みてなされたものであり、滑らか動作での教示を行った場合であっても、動作プログラムのサイクルタイムを短くしつつ、ロボットが元の教示点を通れるように動作プログラムを変更するロボットプログラム変更装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前述した目的を達成するために１番目の発明によれば、第一の移動指令における減速を行っているときに第二の移動指令における加速を行い、第一の移動指令から第二の移動指令への移行を滑らかにする滑らか動作を行うロボットのプログラムを変更するロボットプログラム変更装置において、ロボットの動作プログラムを記憶するプログラム記憶部と、該プログラム記憶部に記憶された前記動作プログラムをシミュレーションにより実行したときの前記動作プログラムのサイクルタイムを初期サイクルタイムとして記憶し、前記動作プログラムの複数の教示点の位置を複数の初期教示点の位置として記憶すると共に前記複数の初期教示点の教示順序を初期教示順序として記憶する初期記憶部と、該初期記憶部に記憶された前記複数の初期教示点の前記初期教示順序通りに前記ロボットを移動させた場合と比較して、前記複数の教示点のそれぞれの間における前記ロボットの移動時間の合計が小さくなるように、前記複数の教示点の教示順序を入替える順序入替部と、該順序入替部により教示順序が入替えられた入替後動作プログラムをシミュレーションにより実行したときの前記ロボットのアーム先端の位置を所定時間毎に記憶するアーム先端位置記憶部と、該アーム先端位置記憶部に記憶された所定時間毎の位置に基づいて作成される前記ロボットの軌跡と、前記初期記憶部に記憶された初期教示点との間のズレ量を前記初期教示点毎に算出する算出部と、前記初期教示点と前記ロボットの軌跡との間の最短距離を形成する方向において、前記アーム先端位置記憶部に記憶された所定時間毎の前記アーム先端の位置が前記初期教示点から離間するように所定距離だけ移動させ、移動後において、前記算出部が算出した、前記アーム先端の位置に基づく新たなロボットの軌跡と前記初期教示点との間のズレ量が所定の許容値以下になるまで、前記入替後動作プログラムの前記教示点の位置調整を行う位置調整部と、該位置調整部により調整された前記教示点を含む前記入替後動作プログラムをシミュレーションにより実行したときの前記入替後動作プログラムのサイクルタイムが前記初期記憶部に記憶された前記初期サイクルタイムよりも長い場合には、調整された前記教示点を前記初期教示点に変更して初期教示順序を採用する教示点変更部とを具備する、ロボットプログラム変更装置が提供される。
【００１２】
２番目の発明によれば、１番目の発明において、前記順序入替部は、前記ロボットの各軸の移動角度を前記ロボットの各軸の回転速度で除算することにより、教示点入替前の前記プログラムおよび前記入替後動作プログラムにおける各教示点の間の移動時間を算出する移動時間算出部と、前記動作プログラムにおける前記複数の教示点のうちの二つの教示点の教示順序を入替えると共に、前記教示点入替後において前記複数の教示点のそれぞれの間における前記ロボットの移動時間の合計から前記教示点入替前における前記ロボットの前記移動時間の合計を減算した偏差が許容値以下であるかどうかを評価する判定部と、該判定部によって前記偏差が許容値以下であると判定された場合には前記教示点入替後の教示順序を採用すると共に、前記偏差が許容値以下でないと判定された場合には前記教示点入替前の教示順序を採用する順序採用部と、該順序採用部により前記教示点入替後の教示順序または前記教示点入替前の教示順序が採用された後で前記許容値を所定量だけ小さくなるよう変更する許容値変更部と、該許容値変更部により変更された前記許容値が所定の規定値になるまで、前記教示順序の入替作業を所定の最大試行回数の範囲で繰返す繰返部と、を含む。
【００１３】
３番目の発明によれば、１番目の発明において、前記順序入替部は、前記動作プログラムの連続する三つの教示点の間における第一動作セグメントの移動ベクトルおよび第二動作セグメントの移動ベクトルのなす角度と、前記第二動作セグメントにおける移動時間とに基づいて、前記教示点の教示順序を入替えるようにした。
【００１４】
４番目の発明によれば、１番目から３番目のいずれかの発明において、前記算出部により算出された前記ズレ量が許容値を越えた場合には、前記位置調整部は、前記初期教示点から最短距離にある前記軌跡上における点から、前記初期教示点に向かうベクトル方向に一定距離だけ前記入替後動作プログラムの前記教示点を移動させて位置調整を行うようにした。
【００１５】
５番目の発明によれば、１番目から４番目のいずれかの発明において、前記動作プログラムの前記教示点の位置修正を行う直前に、前記動作プログラムにおける前記ロボットの速度、加速度および滑らか度合のうちの少なくとも一つの指令値を、前記動作プログラムのサイクルタイムが短くなるように変更する変更部をさらに具備する。
【発明の効果】
【００１６】
１番目の発明においては、動作プログラムの教示点の教示順序を入替えると共に、軌跡と初期教示点との間のズレ量が許容値以下となるように教示点の位置調整を行っている。また、初期サイクルタイムより短いサイクルタイムが得られる場合にはそのような動作プログラムを排除している。このため、滑らか動作での教示を行った場合であっても、動作プログラムのサイクルタイムを短くしつつ、ロボットが初期教示点を含む範囲を通れるように動作プログラムを変更することができる。
【００１７】
２番目の発明においては、教示点間の合計移動時間が小さくなるように教示点の教示順序を入替えられる。
【００１８】
３番目の発明においては、ロボットのアーム先端の平均の移動速度が大きくなるように、教示点の教示順序を入替えられる。
【００１９】
４番目の発明においては、軌跡と初期教示点との間のズレ量を許容値以下にするような教示点の位置を決定できる。
【００２０】
５番目の発明においては、ロボットの速度、加速度および／または滑らか度合いを変更することにより、動作プログラムのサイクルタイムを短くすることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明に基づくロボットプログラム変更装置の機能ブロック図である。
【図２】本発明に基づくロボットプログラム変更装置の動作を説明するフローチャートである。
【図３】初期教示点および軌跡を示す図である。
【図４】教示点の教示順序を入替える入替動作を説明するフローチャートである。
【図５Ａ】入替前の複数の教示点の教示順序を示す図である。
【図５Ｂ】入替後の複数の教示点の教示順序を示す図である。
【図６】教示点の教示順序を入替える他の入替動作を説明する第一のフローチャートである。
【図７】教示点の教示順序を入替える他の入替動作を説明する第二のフローチャートである。
【図８】複数の教示点を示す図である。
【図９】複数の教示点を示す他の図である。
【図１０】本発明に基づくロボットプログラム変更装置の動作を説明する他のフローチャートである。
【図１１】初期教示点および軌跡を示す他の図である。
【図１２Ａ】滑らか動作を説明するための第一の図である。
【図１２Ｂ】滑らか動作を説明するための第二の図である。
【図１２Ｃ】滑らか動作を説明するための第三の図である。
【発明を実施するための形態】
【００２２】
以下、添付図面を参照して本発明の実施形態を説明する。以下の図面において同様の部材には同様の参照符号が付けられている。理解を容易にするために、これら図面は縮尺を適宜変更している。
図１は本発明に基づくロボットプログラム変更装置の機能ブロック図である。図１に示されるように、ロボットプログラム変更装置１０は、表示部１１、例えば液晶ディスプレイと、制御装置１２、例えばコンピュータと、入力部１３、例えばキーボードおよびマウス等とを主に含んでいる。
【００２３】
表示部１１には、アーム先端にツール１６を備えたロボット１５、例えば多関節ロボットの三次元モデルが表示されている。さらに、ロボット１５近傍にはワークＷの三次元モデルが表示されている。これら三次元モデルは、実際のロボット１５、ツール１６およびワークＷに対応して配置されている。
【００２４】
図１に示されるように、制御装置１２は、ロボット１５の動作プログラムを記憶するプログラム記憶部２１と、プログラム記憶部２１に記憶された動作プログラムをシミュレーションにより実行したときの動作プログラムのサイクルタイムＣＴを初期サイクルタイムＣＴ０として記憶し、動作プログラムの複数の教示点の位置を複数の初期教示点の位置として記憶すると共に複数の初期教示点の教示順序を初期教示順序として記憶する初期記憶部２２とを含んでいる。
【００２５】
また、制御装置１２は、初期記憶部２２に記憶された複数の初期教示点の初期教示順序通りにロボット１５を移動させた場合と比較して、複数の教示点のそれぞれの間におけるロボット１５の移動時間の合計が小さくなるように、複数の教示点の教示順序を入替える順序入替部２３としての役目を果たす。
【００２６】
さらに、制御装置１２は、順序入替部２３により教示順序が入替えられた入替後動作プログラムをシミュレーションにより実行したときのロボット１５のアーム先端の位置を所定時間毎に記憶するアーム先端位置記憶部２４と、アーム先端位置記憶部２４に記憶された所定時間毎の位置に基づいて作成されるロボット１５の軌跡と、初期記憶部２２に記憶された初期教示点との間のズレ量を初期教示点毎に算出する算出部２５としての役目を果たす。
【００２７】
さらに、制御装置１２は、算出部２５により算出されたズレ量が所定の許容値以下になるまで、入替後動作プログラムの教示点の位置調整を行う位置調整部２６と、位置調整部２６により調整された教示点を含む入替後動作プログラムをシミュレーションにより実行したときの入替後動作プログラムのサイクルタイムＣＴが初期記憶部２２に記憶された初期サイクルタイムＣＴ０よりも長い場合には、調整された教示点を初期教示点に変更して初期教示順序を採用する教示点変更部としての役目を果たす。
【００２８】
ここで、順序入替部２３は、ロボット１５の各軸の移動角度をロボット１５の各軸の回転速度で除算することにより、これにより、教示点入替前の動作プログラムおよび入替後動作プログラムにおける各教示点の間の移動時間を算出する移動時間算出部３１と、動作プログラムにおける複数の教示点のうちの二つの教示点の教示順序を入替えると共に、教示点入替後において複数の教示点のそれぞれの間におけるロボット１５の移動時間の合計から教示点入替前におけるロボット１５の移動時間の合計を減算した偏差が許容値以下であるかどうかを評価する判定部３２と、判定部３２によって偏差が許容値以下であると判定された場合には教示点入替後の教示順序を採用すると共に、偏差が許容値以下でないと判定された場合には教示点入替前の教示順序を採用する順序採用部３３と、順序採用部３３により教示点入替後の教示順序または教示点入替前の教示順序が採用された後で許容値を所定量だけ小さくなるよう変更する許容値変更部３４と、許容値変更部３４により変更された許容値が所定の規定値になるまで、教示順序の入替作業を所定の最大試行回数の範囲で繰返す繰返部３５とを含む。
【００２９】
また、後述するように、順序入替部２３は、動作プログラムの連続する三つの教示点の間における第一動作セグメントの移動ベクトルおよび第二動作セグメントの移動ベクトルのなす角度と、第二動作セグメントにおける移動時間とに基づいて、教示点の教示順序を入替えるようにしてもよい。
【００３０】
さらに、制御装置１２は、動作プログラムの教示点の位置修正を行う直前に、動作プログラムにおけるロボット１５の速度、加速度および滑らか度合のうちの少なくとも一つの指令値を、動作プログラムのサイクルタイムＣＴが短くなるように変更する変更部３６としての役目も果たす。
【００３１】
図２は本発明に基づくロボットプログラム変更装置の動作を説明するフローチャートである。図２等の動作を示す制御プログラムおよび図２等で使用される各種データは制御装置１２のプログラム記憶部２１に別途記憶されているものとする。以下、図１および図２を参照しつつ、本発明のロボットプログラム変更装置１０を説明する。
【００３２】
また、本発明においては、ロボット１５の動作プログラムに記載される連続した二つの移動指令のうち、第一の移動指令における減速を行っているときに第二の移動指令における加速を行い、第一の移動指令から第二の移動指令への移行を滑らかにしている。つまり、本発明においては、図１２を参照して説明したように、或る教示点から他の教示点に移動する際に、滑らか動作が行われるものとする。
【００３３】
はじめに、図２のステップＳ１０において、操作者は、入力部１３を用いて、動作プログラムにより規定されるロボット１５のアーム先端の軌跡と教示点との間のズレ量に関する許容値Ｋ（ｍｍ）を設定する。許容値Ｋは比較的小さい正の値、または許容値Ｋはゼロであってもよい。
【００３４】
次いで、ステップＳ１１において、動作プログラムをプログラム記憶部２１から読出す。そして、動作プログラムに記載された複数の教示点の位置を複数の初期教示点の位置として初期記憶部２２に記憶し、初期教示点の教示順序を初期教示順序として初期記憶部２２に記憶する。さらに、動作プログラムをシミュレーションにより実行し、動作プログラムのサイクルタイムＣＴを求め、それを初期サイクルタイムＣＴ０として初期記憶部２２に記憶する。
【００３５】
次いで、ステップＳ１２において、順序入替部２３を用いて少なくとも二つの教示点の教示順序を入替え、それにより、少なくとも二つの教示点間の移動距離が小さくなるようにする。教示順序の入替作業については詳細に後述する。
【００３６】
次いで、ステップＳ１３において、教示順序が入替えられた入替後動作プログラムをシミュレーションする。このシミュレーションにより、ロボット１５のアーム先端の所定時間毎の位置が分かるので、それら位置をアーム先端位置記憶部２４に記憶する。
【００３７】
さらに、ステップＳ１４においては、アーム先端位置記憶部２４に記憶された位置に基づいてアーム先端の軌跡を作成する。さらに、初期記憶部２２から複数の初期教示点の位置を読出す。図３は初期教示点および軌跡などを示す図である。図３においては、初期教示点Ｐ０と入替後動作プログラムの教示点Ｐとが示されている。さらに、入替後動作プログラムに基づいて作成された軌跡Ｘ１が示されている。本発明では滑らか動作を行っているので、軌跡Ｘ１は入替後動作プログラムの教示点Ｐ上には位置しない。ステップＳ１４においては、算出部２５が入替後動作プログラムの複数の初期教示点Ｐ０の各位置と軌跡Ｘ１との間のズレ量を初期教示点毎に算出する。図３から分かるように、ズレ量は初期教示点Ｐ０と軌跡Ｘ１との最短距離に相当する。
【００３８】
その後、ステップＳ１５において、ズレ量が許容値Ｋ以下であるか否かを判定する。ズレ量の全てが許容値Ｋ以下であると判定された場合には、ステップＳ１６に進んで、入替後動作プログラムをシミュレーションにより実行し、入替後動作プログラムのサイクルタイムＣＴを算出する。
【００３９】
これに対し、ステップＳ１５において少なくとも一つのズレ量が許容値Ｋ以下でないと判定された場合には、ステップＳ１８に進む。ステップＳ１８においては、位置調整部２７によって、入替後動作プログラムの複数の教示点の位置を調整する。そして、全ての教示点に関するズレ量が許容値Ｋ以下となるまで前述したステップＳ１４〜ステップＳ１６の処理を繰返す。位置調整部２７の具体的な動作については後述する。
【００４０】
そして、ステップＳ１７においては、サイクルタイムＣＴと初期記憶部２２に記憶された初期サイクルタイムＣＴ０とを比較する。そして、サイクルタイムＣＴが初期サイクルタイムＣＴ０よりも小さい場合には、入替後動作プログラムをそのまま採用する。これに対し、サイクルタイムＣＴが初期サイクルタイムＣＴ０よりも小さくない場合には、位置調整部２７が全ての教示点Ｐの位置を初期教示点Ｐ０に変更し、また、初期教示順序を採用するように動作プログラムを戻す。
【００４１】
このように本発明では動作プログラムの教示点の教示順序を入替えると共に、軌跡と初期教示点との間のズレ量が許容値Ｋ以下となるように教示点の位置調整を行っている。また、初期サイクルタイムより短いサイクルタイムが得られる場合にはそのような動作プログラムを排除している。このため、滑らか動作での教示を行った場合であっても、動作プログラムのサイクルタイムを短くしつつ、ロボットが初期教示点を含む範囲内を通れるように動作プログラムを変更することができる。
【００４２】
図４は教示点の教示順序を入替える入替動作を説明するフローチャートである。以下、図４を参照しつつ、順序入替部２３の入替動作について説明する。はじめに、図４のステップＳ２１において、操作者は、入力部１３を用いて、各教示点間のロボット１５の移動時間を積算した合計移動時間の許容値Ｔを設定する。許容値Ｔは合計移動時間の許容誤差であり、ステップＳ２１においては、許容値Ｔを比較的大きく設定するのが好ましい。
【００４３】
次いで、ステップＳ２２においては、移動時間算出部３１が、教示順序ｓの入替前の動作プログラムにおける教示点間のロボット１５の移動時間の合計移動時間Ｅ（ｓ）を算出する。具体的には、移動時間算出部３１は、全ての教示点の位置におけるロボット１５の各軸の移動角度をロボット１５の各軸の回転速度で除算することにより、教示点間の移動時間を求める。そして、これら移動時間を積算することにより合計移動時間Ｇ１を算出する。
【００４４】
図５Ａおよび図５Ｂは複数の教示点の教示順序を示す図である。図５Ａに示されるように、教示順序の入替前においては、複数、例えば六つの教示点Ｐ（１）〜Ｐ（６）が教示順序ｓ（Ｐ（１）−Ｐ（２）−Ｐ（３）−Ｐ（４）−Ｐ（５）−Ｐ（６））に従って配置されている。
【００４５】
次いで、ステップＳ２３において、動作プログラムの複数の教示点のうちの二つの教示順序を入替える。例えば図５Ａに示される二つの教示点Ｐ（１）１、Ｐ（２）の教示順序を入替えると、図５Ｂに示されるように新たな教示順序ｓ’（Ｐ（２）−Ｐ（１）−Ｐ（３）−Ｐ（４）−Ｐ（５）−Ｐ（６））が得られる。そして、ステップＳ２４においては、移動時間算出部３１が新たな教示順序ｓ’に従って入替後動作プログラムの合計移動時間Ｅ（ｓ’）を前述したように算出する。
【００４６】
その後、ステップＳ２５においては、入替後の合計移動時間Ｅ（ｓ’）から入替前の合計移動時間Ｅ（ｓ）を減算して偏差を算出する。そして、判定部３２は、偏差が許容値Ｔ以下であるか否かを判定する。偏差が許容値Ｔ以下である場合には、ステップＳ２６に進んで、入替後の教示順序ｓ’を採用する。これに対し、偏差が許容値Ｔ以下でない場合には、ステップＳ２７に進んで、入替前の教示順序ｓを採用する。
【００４７】
そして、ステップＳ２８に進んで、許容値変更部３４が許容値Ｔを所定の微小量ΔＴだけ小さくする。その後、ステップＳ２９に進んで、許容値Ｔが所定の規定値Ｔ０（＜Ｔ）に到達したか否かを判定する。
【００４８】
許容値Ｔが規定値Ｔ０以下であると判定された場合には処理を終了する。これに対し、許容値Ｔが所定の規定値Ｔ０以下でないと判定された場合には、ステップＳ２３に戻り、繰返部３５は許容値Ｔが所定の規定値Ｔ０以下になるまで前述した処理を繰返すものとする。このようにして、本発明では、教示点間の合計移動時間が小さくなるように教示点の教示順序を入替えることが可能となる。
【００４９】
図６および図７は教示点の教示順序を入替える他の入替動作を説明するフローチャートである。また図８および図９は複数の教示点を示す図である。以下、図６から図９を参照して、順序入替部２３の他の入替動作について説明する。
【００５０】
はじめに図６のステップＳ３１において、動作プログラムの全ての複数の教示点の位置の中心ＰＧを求める。図８に示されるように黒丸で示される六つの教示点の位置の間に中心ＰＧが配置されている。そして、中心ＰＧから最も遠方に位置する教示点を第一の教示点Ｐ（１）として選択する。
【００５１】
次いで、ステップＳ３２においては、残りの教示点から第二の教示点Ｐ（２）を以下のように選択する。まず、第一の教示点Ｐ（１）から中心ＰＧに向かうベクトルＰ（１）ＰＧと、第一の教示点Ｐ（１）から残りのそれぞれの教示点に向かうベクトルとを作成する。そして、ベクトルＰ（１）ＰＧに対して、時計回りに最大の角度をなすベクトルと、反時計回りに最大の角度をなすベクトルとを決定する。ただしこの角度は90度以下とする。
【００５２】
図８においては、ベクトルＰ（１）Ｐ（２Ｂ）が反時計回りに最大の角度をなすベクトルであり、ベクトルＰ（１）Ｐ（２Ａ）が時計回りに最大の角度をなすベクトルである。次いで、教示点Ｐ（１）、Ｐ（２Ｂ）の間の移動時間と教示点Ｐ（１）、Ｐ（２Ａ）の間の移動時間とを比較し、短い移動時間に関する教示点Ｐ（２Ａ）を第二の教示点Ｐ（２）として選択する。教示点間の移動時間は前述した移動時間算出部３１により求められる。
【００５３】
次いで、ステップＳ３３においては、変数Ｎを１に設定する。そして、ステップＳ３４においては、既に教示順序が決定している教示点（例えば教示点Ｐ（１）、Ｐ（２））を除いて、教示点間の移動時間がＮ番目に短い教示点Ｐ（Ｎｔｈ）を選択する。教示点間の移動時間は前述した移動時間算出部３１により求められる。
【００５４】
そして、ステップＳ３５においては、図９に示されるように、教示点Ｐ（Ｎｔｈ）よりも前の二つの教示点Ｐ（ｉ−１）、Ｐ（ｉ）を考える。これら三つの教示点Ｐ（ｉ−１）、Ｐ（ｉ）、Ｐ（Ｎｔｈ）は連続している。そして、二つの教示点Ｐ（ｉ−１）、Ｐ（ｉ）の間の第一セグメントの第一移動ベクトルＶ１と、二つの教示点Ｐ（ｉ）、Ｐ（Ｎｔｈ）の間の第二セグメントの第二移動ベクトルＶ２とを設定する。さらに、第一移動ベクトルＶ１と第二移動ベクトルＶ２との間のなす角度θが所定の設定値θ０よりも小さいか否かを判定する。
【００５５】
そして、角度θが所定の設定値θ０よりも小さいと判定された場合には、ステップＳ３６に進んで、教示点Ｐ（Ｎｔｈ）を次の教示点Ｐ（ｉ＋１）として設定する。この点に関し、図９には、教示点Ｐ（ｉ）からの距離が、教示点Ｐ（Ｎｔｈ）の場合と概ね等しい教示点Ｐ’が示されている。しかしながら、教示点Ｐ’は前述した角度が設定値θ０よりも大きいので、教示点Ｐ’は次の教示点Ｐ（ｉ＋１）として設定されない。
【００５６】
次の教示点Ｐ（ｉ＋１）が設定されると、ステップＳ３７において、全ての教示点の教示順序の入替えが終了したか否かが判定される。そして、全ての教示順序が入替えられた場合には、処理を終了する。これに対し、全ての教示順序が入替えられていない場合には、ステップＳ３３に戻って処理を繰返す。
【００５７】
ところで、ステップＳ３５において角度θが所定の設定値θ０よりも小さくないと判定された場合には、ステップＳ３８に進む。ステップＳ３８においては、変数Ｎが既に教示順序が決定している教示点を除いた教示点の数に等しいか否かが判定される。変数Ｎが残りの教示点の数に等しくない場合には、ステップＳ３９において入替前の教示順序に戻すと共に、変数Ｎに「１」を加算する。その後、ステップＳ３４に戻って処理を繰返すものとする。
【００５８】
これに対し、変数Ｎが残りの教示点の数に等しい場合には、ステップＳ４０に進む。ステップＳ４０においては、現在の教示点Ｐ（ｉ）からの移動時間が最も短い教示点を次の教示点Ｐ（ｉ＋１）として設定する。その後、ステップＳ３３に戻って処理を繰返すものとする。
【００５９】
図６においては、ステップＳ３４において移動時間が短いことを前提にして教示点を選択している。従って、ロボット１５のアーム先端の平均の移動速度が大きくなるように、複数の教示点の教示順序を入替えられるのが分かるであろう。
【００６０】
図１０は本発明に基づくロボットプログラム変更装置の動作を説明する他のフローチャートである。図１０では図２に示されるステップＳ１２からステップＳ１５までのみを示しており、簡潔にする目的で、図２におけるステップＳ１０、Ｓ１１、Ｓ１６、Ｓ１７、Ｓ１９の図示を省略している。また、図２を参照して説明したステップについては、再度の説明を省略する。
【００６１】
以下、図１０を参照して、図１との相違点について主に述べる。ステップＳ１８で動作プログラムの教示点の位置調整を行うためには、ステップＳ１２ａに示されるように、ロボット１５の指令速度、指令加速度および／または指令滑らか度合いをそれぞれの最大値に設定するのが好ましい。なお、滑らか動作の度合いを表す滑らか度合いはパーセンテージで示される。そして、ステップＳ１５において算出されたズレ量が許容値Ｋ以下でないと判定された場合には、ステップＳ１５ａに進む。ステップＳ１５ａにおいては、予め操作者により設定された最大試行回数に到達するまで、ステップＳ１３〜ステップＳ１５の処理を行ったか否かが判定される。
【００６２】
そして、最大試行回数に到達している場合にはステップＳ１２ｂに進む。ステップＳ１２ｂにおいては、変更部３６がロボット１５の指令速度、指令加速度および／または指令滑らか度合いをそれぞれの所定量だけ低下させ、次いでステップＳ１３に戻る。これに対し、最大試行回数に到達していない場合にはステップＳ１８において、動作プログラムの教示点の位置調整を行う。なお、教示点の位置調整作業は、図１に示されるフローチャートのステップＳ１８と同様である。
【００６３】
図１１は初期教示点および軌跡を示す他の図である。図１１に示されるように、初期教示点Ｐ０と軌跡Ｘ１との間の最短距離を形成する方向を定める。そして、教示点Ｐがこの方向において初期教示点Ｐ０から離間するように、教示点Ｐを所定距離だけ移動させる。図１１においては、位置調整部２７によって、二つの教示点Ｐがそれぞれ、教示点Ｐｎｅｗの位置まで移動されるのが示されている。
【００６４】
図１１に示される破線Ｘ２は、教示点Ｐｎｅｗに基づいてステップＳ１３での処理により形成された、ロボット１５のアーム先端の軌跡である。図１１に示されるように破線Ｘ２は、初期教示点Ｐ０上に載っている。すなわち、破線Ｘ２で示される軌跡は、許容値Ｋがゼロに設定された場合に最終的に得られる。
【００６５】
このような場合には、滑らか動作での教示を行った場合であっても、動作プログラムのサイクルタイムを短くしつつ、ロボットが初期教示点を通れるように動作プログラムを変更できるのが分かるであろう。
【００６６】
ところで、図１０では図示を省略しているステップＳ１６において、サイクルタイムＣＴが算出されている。ステップＳ１６に到達するときには、ステップＳ１８における教示点の位置調整処理、もしくはステップＳ１２ｂにおける指令速度、指令加速度および／または指令滑らか度合いの低下処理が行われている。そして、図１０のステップＳ１２では、図４または図６を参照して説明した二種類の教示順序の入替動作のうちの両方を行うことも可能である。
【００６７】
このような場合には、図１０には示さないステップＳ１６において、二種類のサイクルタイムＣＴが得られることになる。そして、ステップＳ１１（図１０では省略）では、初期サイクルタイムＣＴ０が求められている。このため、図１０には示さないステップＳ１７では、初期サイクルタイムＣＴ０と二種類のサイクルタイムＣＴとのうちの最も小さいサイクルタイムを選択するようにしてもよい。これにより、サイクルタイムがより短い位置調整処理などが行われた動作プログラムを選択できるのが分かるであろう。
【符号の説明】
【００６８】
１０    ロボットプログラム変更装置
１１    表示部
１２    制御装置
１３    入力部
１５    ロボット
１６    ツール
２１    プログラム記憶部
２２    初期記憶部
２３    順序入替部
２４    アーム先端位置記憶部
２５    算出部
２６    位置調整部
２７    位置調整部
３１    移動時間算出部
３２    判定部
３３    順序採用部
３４    許容値変更部
３５    繰返部
３６    変更部
【図１】
0005426722.tif 000002
【図２】
0005426722.tif 000003
【図３】
0005426722.tif 000004
【図４】
0005426722.tif 000005
【図５Ａ】
0005426722.tif 000006
【図５Ｂ】
0005426722.tif 000007
【図６】
0005426722.tif 000008
【図７】
0005426722.tif 000009
【図８】
0005426722.tif 000010
【図９】
0005426722.tif 000011
【図１０】
0005426722.tif 000012
【図１１】
0005426722.tif 000013
【図１２Ａ】
0005426722.tif 000014
【図１２Ｂ】
0005426722.tif 000015
【図１２Ｃ】
0005426722.tif 000016