(57)【特許請求の範囲】
【請求項１】
ロボットに装着された工具の先端点を所定の移動経路に沿って指定速度で移動させるための前記ロボットの動作プログラムを修正するプログラム修正装置であって、
前記動作プログラムに基づいて前記ロボットの動作シミュレーションを実行する実行部と、
前記動作シミュレーションの結果から、前記先端点が前記移動経路を通過する間の前記先端点の移動速度の時間変化を算出する算出部と、
前記算出部が算出した前記時間変化における前記移動速度の最小値が予め定めた下限値以下である場合に、前記算出部が算出した前記時間変化のパターンを評価する評価部と、
前記移動速度の最小値を増加させる前記動作プログラムの修正方式を、予め定めた複数の修正方式の中から、前記時間変化のパターンの評価結果に応じて選択する選択部と、
前記選択部が選択した修正方式に従って前記動作プログラムを修正する修正部と、を備えるプログラム修正装置。
【請求項２】
前記修正部は、前記時間変化における前記移動速度の最小値が前記下限値よりも大きくなるまで前記動作プログラムを繰り返し修正する、請求項１に記載のプログラム修正装置。
【請求項３】
前記動作プログラムは、順番に実行される複数の動作指令から構成され、
前記算出部は、前記複数の動作指令のそれぞれが実行される間の前記時間変化を順番に算出する、請求項１または２に記載のプログラム修正装置。
【請求項４】
前記評価部は、前記移動速度が前記指定速度から減少し始める時間と前記移動速度が最小値に到達する時間との間の第１区間、及び前記移動速度が最小値から増加し始める時間と前記移動速度が前記指定速度に収束する時間までの第２区間のそれぞれにおける前記時間変化の単調性に基づいて、前記時間変化のパターンを評価する、請求項３に記載のプログラム修正装置。
【請求項５】
前記複数の修正方式には、前記複数の動作指令のうちの前記移動速度が前記指定速度から減少し始めるときの動作指令の直後に新たな動作指令を追加することを含む第１修正方式が含まれ、
前記選択部は、前記第１区間における前記時間変化が単調減少であり、かつ前記第２区間における前記時間変化が単調増加である場合には、前記第１修正方式を選択する、請求項４に記載のプログラム修正装置。
【請求項６】
前記複数の修正方式には、前記複数の動作指令のうちの前記移動速度が前記指定速度から減少し始めるときの動作指令の直後の動作指令を変更することを含む第２修正方式が含まれ、
前記選択部は、前記第１区間における前記時間変化が単調減少であり、かつ前記第２区間における前記時間変化が非単調増加である場合には、前記第２修正方式を選択する、請求項４または５に記載のプログラム修正装置。
【請求項７】
前記複数の修正方式には、前記複数の動作指令のうちの前記移動速度が最小値に到達するときの動作指令の直前の動作指令を削除することを含む第３修正方式が含まれ、
前記選択部は、前記第１区間における前記時間変化が非単調減少である場合には、前記第３修正方式を選択する、請求項４〜６のいずれか１つに記載のプログラム修正装置。
【請求項８】
ロボットに装着された工具の先端点を所定の移動経路に沿って指定速度で移動させるための動作プログラムを修正するプログラム修正方法であって、
前記動作プログラムに基づいて前記ロボットの動作シミュレーションを実行し、
前記動作シミュレーションの結果から、前記先端点が前記移動経路を通過する間の前記先端点の移動速度の時間変化を算出し、
算出した前記時間変化における前記移動速度の最小値が予め定めた下限値以下である場合に、算出した前記時間変化のパターンを評価し、
前記移動速度の最小値を増加させる前記動作プログラムの修正方式を、予め定めた複数の修正方式の中から、前記時間変化のパターンの評価結果に応じて選択し、
選択した修正方式に従って前記動作プログラムを修正することを含むプログラム修正方法。
【請求項９】
前記時間変化における前記移動速度の最小値が前記下限値よりも大きくなるまで前記動作プログラムを繰り返し修正することをさらに含む、請求項８に記載のプログラム修正方法。
【請求項１０】
前記動作プログラムは、順番に実行される複数の動作指令から構成され、
前記複数の動作指令のそれぞれが実行される間の前記時間変化を順番に算出する、請求項８または９に記載のプログラム修正方法。
【請求項１１】
前記移動速度が前記指定速度から減少し始める時間と前記移動速度が最小値に到達する時間との間の第１区間、及び前記移動速度が最小値から増加し始める時間と前記移動速度が前記指定速度に収束する時間までの第２区間のそれぞれにおける前記時間変化の単調性に基づいて、前記時間変化のパターンを評価する、請求項１０に記載のプログラム修正方法。
【請求項１２】
前記複数の修正方式には、前記複数の動作指令のうちの前記移動速度が前記指定速度から減少し始めるときの動作指令の直後に新たな動作指令を追加することを含む第１修正方式が含まれ、
前記第１区間における前記時間変化が単調減少であり、かつ前記第２区間における前記時間変化が単調増加である場合には、前記第１修正方式を選択する、請求項１１に記載のプログラム修正方法。
【請求項１３】
前記複数の修正方式には、前記複数の動作指令のうちの前記移動速度が前記指定速度から減少し始めるときの動作指令の直後の動作指令を変更することを含む第２修正方式が含まれ、
前記第１区間における前記時間変化が単調減少であり、かつ前記第２区間における前記時間変化が非単調増加である場合には、前記第２修正方式を選択する、請求項１１または１２にプログラム修正方法。
【請求項１４】
前記複数の修正方式には、前記複数の動作指令のうちの前記移動速度が最小値に到達するときの動作指令の直前の動作指令を削除することを含む第３修正方式が含まれ、
前記第１区間における前記時間変化が非単調減少である場合には、前記第３修正方式を選択する、請求項１１〜１３のいずれか１つに記載のプログラム修正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用ロボットの動作プログラムを修正するプログラム修正装置及びプログラム修正方法に関する。
【背景技術】
【０００２】
近年、垂直多関節ロボットのような産業用ロボットは、レーザ切断、アーク溶接、及びバリ取りのような種々の用途に使用されている。それらロボットの制御装置は、予め用意された動作プログラムを実行することによって、ロボットに装着された工具（例えば、レーザ切断用のレーザ発振器）を指定速度で移動させるようになっている。ところが、工具の移動経路に曲がり角が含まれる場合には、工具が曲がり角を通過する間の移動速度が指定速度から低下することが避けられない。特に、移動速度の低下量が大きい場合には、工具が曲がり角を通過する間のワークの加工品質が低下する虞がある。例えば、工具が指定速度を大きく下回る速度で移動する結果として、ワークの加工過多が引き起こされる虞がある。
【０００３】
これに関連して、特許文献１には、工具先端に設定された制御点から曲がり角までの距離が所定の基準距離よりも小さくなったら、手首フランジの駆動軸線と教示平面との交点が所定の円弧上を移動するように手首フランジを回転駆動することを含む、ロボットの経路補間方法が提案されている。特許文献１の経路補間方法によれば、手首フランジが滑らかに回転駆動されることによって制御点が教示平面上で直線駆動されるので、制御点が曲がり角を通過する間の移動速度が低下することを防止できる。ところが、特許文献１の経路補間方法を採用する場合には、工具が装着される手首フランジのフランジ面を教示平面に対して平行に方向付ける必要がある。このように手首フランジを方向付けるにはロボットのハードウェア設定を詳細に変更する必要があるが、通常のユーザがこのような設定変更を行うは困難であると考えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３９０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ロボットのハードウェア設定を変更せずに工具先端点の速度低下を軽減できる装置及び方法が求められている。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、ロボットに装着された工具の先端点を所定の移動経路に沿って指定速度で移動させるためのロボットの動作プログラムを修正するプログラム修正装置であって、動作プログラムに基づいてロボットの動作シミュレーションを実行する実行部と、動作シミュレーションの結果から、先端点が移動経路を通過する間の先端点の移動速度の時間変化を算出する算出部と、算出部が算出した時間変化における移動速度の最小値が予め定めた下限値以下である場合に、算出部が算出した時間変化のパターンを評価する評価部と、移動速度の最小値を増加させる動作プログラムの修正方式を、予め定めた複数の修正方式の中から、時間変化のパターンの評価結果に応じて選択する選択部と、選択部が選択した修正方式に従って動作プログラムを修正する修正部と、を備えるプログラム修正装置が提供される。
本発明の第２の態様によれば、第１の態様において、修正部は、時間変化における移動速度の最小値が下限値よりも大きくなるまで動作プログラムを繰り返し修正する、プログラム修正装置が提案される。
本発明の第３の態様によれば、第１または第２の態様において、動作プログラムは、順番に実行される複数の動作指令から構成され、算出部は、複数の動作指令のそれぞれが実行される間の時間変化を順番に算出する、プログラム修正装置が提供される。
本発明の第４の態様によれば、第３の態様において、評価部は、移動速度が指定速度から減少し始める時間と移動速度が最小値に到達する時間との間の第１区間、及び移動速度が最小値から増加し始める時間と移動速度が指定速度に収束する時間までの第２区間のそれぞれにおける時間変化の単調性に基づいて、時間変化のパターンを評価する、プログラム修正装置が提供される。
本発明の第５の態様によれば、第４の態様において、複数の修正方式には、複数の動作指令のうちの移動速度が指定速度から減少し始めるときの動作指令の直後に新たな動作指令を追加することを含む第１修正方式が含まれ、選択部は、第１区間における時間変化が単調減少であり、かつ第２区間における時間変化が単調増加である場合には、第１修正方式を選択する、プログラム修正装置が提供される。
本発明の第６の態様によれば、第４または第５の態様において、複数の修正方式には、複数の動作指令のうちの移動速度が指定速度から減少し始めるときの動作指令の直後の動作指令を変更することを含む第２修正方式が含まれ、選択部は、第１区間における時間変化が単調減少であり、かつ第２区間における時間変化が非単調増加である場合には、第２修正方式を選択する、プログラム修正装置が提供される。
本発明の第７の態様の態様によれば、第４〜第６の態様のいずれか１つにおいて、複数の修正方式には、複数の動作指令のうちの移動速度が最小値に到達するときの動作指令の直前の動作指令を削除することを含む第３修正方式が含まれ、選択部は、第１区間における時間変化が非単調減少である場合には、第３修正方式を選択する、プログラム修正装置が提供される。
本発明の第８の態様によれば、ロボットに装着された工具の先端点を所定の移動経路に沿って指定速度で移動させるための動作プログラムを修正するプログラム修正方法であって、動作プログラムに基づいてロボットの動作シミュレーションを実行し、動作シミュレーションの結果から、先端点が移動経路を通過する間の先端点の移動速度の時間変化を算出し、算出した時間変化における移動速度の最小値が予め定めた下限値以下である場合に、算出した時間変化のパターンを評価し、移動速度の最小値を増加させる動作プログラムの修正方式を、予め定めた複数の修正方式の中から、時間変化のパターンの評価結果に応じて選択し、選択した修正方式に従って動作プログラムを修正することを含むプログラム修正方法が提供される。
本発明の第９の態様によれば、第８の態様において、時間変化における移動速度の最小値が下限値よりも大きくなるまで動作プログラムを繰り返し修正することをさらに含む、プログラム修正方法が提供される。
本発明の第１０の態様によれば、第８または第９の態様において、動作プログラムは、順番に実行される複数の動作指令から構成され、複数の動作指令のそれぞれが実行される間の時間変化を順番に算出する、プログラム修正方法が提供される。
本発明の第１１の態様によれば、第１０の態様において、移動速度が指定速度から減少し始める時間と移動速度が最小値に到達する時間との間の第１区間、及び移動速度が最小値から増加し始める時間と移動速度が指定速度に収束する時間までの第２区間のそれぞれにおける時間変化の単調性に基づいて、時間変化のパターンを評価する、プログラム修正方法が提供される。
本発明の第１２の態様によれば、第１１の態様において、複数の修正方式には、複数の動作指令のうちの移動速度が指定速度から減少し始めるときの動作指令の直後に新たな動作指令を追加することを含む第１修正方式が含まれ、第１区間における時間変化が単調減少であり、かつ第２区間における時間変化が単調増加である場合には、第１修正方式を選択する、プログラム修正方法が提案される。
本発明の第１３の態様によれば、第１１または第１２の態様において、複数の修正方式には、複数の動作指令のうちの移動速度が指定速度から減少し始めるときの動作指令の直後の動作指令を変更することを含む第２修正方式が含まれ、第１区間における時間変化が単調減少であり、かつ第２区間における時間変化が非単調増加である場合には、第２修正方式を選択する、プログラム修正方法が提供される。
本発明の第１４の態様によれば、第１１〜第１３の態様のいずれか１つにおいて、複数の修正方式には、複数の動作指令のうちの移動速度が最小値に到達するときの動作指令の直前の動作指令を削除することを含む第３修正方式が含まれ、第１区間における時間変化が非単調減少である場合には、第３修正方式を選択する、プログラム修正方法が提案される。
【発明の効果】
【０００７】
本発明の第１及び第８の態様によれば、工具先端点の移動速度の最小値が下限値以下である場合に、工具先端点の速度変化のパターンが評価されるとともに、速度変化のパターンの評価結果に応じた適切な動作プログラムの修正方式が選択される。よって、第１及び第８の態様によれば、ロボットのハードウェア設定を変更せずに既存の動作プログラムを修正するだけで工具先端点の速度低下を軽減できるようになる。
本発明の第１及び第９の態様によれば、工具先端点の移動速度の最小値が下限値以下になるまで動作プログラムの修正が繰り返される。よって、第１及び第９の態様によれば、工具先端点の移動速度が下限値を越えて減少することが原因で発生する加工精度の低下（例えば加工過多）を確実に防止できるようになる。
本発明の第３及び第１０の態様によれば、動作プログラム中の複数の動作指令のそれぞれが実行される間の工具先端点の速度変化が順番に算出されるので、複数の動作指令のそれぞれと工具先端点の速度変化との間の対応関係を確認することが可能になる。よって、第３及び第１０の態様によれば、工具先端点の移動速度が指定速度から減少し始めるときの動作指令、及び工具先端点の移動速度が最小値に到達するときの動作指令等を特定することが可能になる。
本発明の第４〜第７の態様、及び第１１〜第１４の態様によれば、典型的な動作プログラムによって与えられる工具先端点の速度変化パターンに適した修正方式を選択することが可能になる。特に、第５及び第１２の態様によれば、工具先端点の移動速度が第１区間で単調に減少し、かつ第２区間で単調に増加する速度変化パターンに適した第１修正方式を選択することが可能になる。同様に、第６及び第１３の態様によれば、工具先端点の移動速度が第１区間で単調に減少し、かつ第２区間で非単調に増加する速度変化パターンに適した第２修正方式を選択することが可能になる。同様に、第７及び第１４の態様によれば、工具先端点の移動速度が第１区間で非単調に減少する速度変化パターンに適した第３修正方式を選択することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】本発明の１つの実施形態のプログラム修正装置を含むロボットシステムの構成を示すブロック図である。
【図２】図１中のプログラム修正装置の構成を示すブロック図である。
【図３】図１中のロボットの動作プログラムの第１の例を示す概略図である。
【図４】図３の動作プログラムによる工具先端点の移動経路の一部を示す概略図である。
【図５】図１中のロボットの動作プログラムの第２の例を示す概略図である。
【図６】図１中のロボットの動作プログラムの第３の例を示す概略図である。
【図７】図１中のロボットの動作プログラムの第４の例を示す概略図である。
【図８】図１中のロボットの動作プログラムの第５の例を示す概略図である。
【図９】図３の動作プログラムに対応する工具先端点の移動速度の時間変化を示すグラフである。
【図１０】図５の動作プログラムに対応する工具先端点の移動速度の時間変化を示すグラフである。
【図１１】図６の動作プログラムに対応する工具先端点の移動速度の時間変化を示すグラフである。
【図１２】図７の動作プログラムに対応する工具先端点の移動速度の時間変化を示すグラフである。
【図１３】図８の動作プログラムに対応する工具先端点の移動速度の時間変化を示すグラフである。
【図１４】図３の動作プログラムを第１修正方式に従って修正した結果を示す概略図である。
【図１５】図６の動作プログラムを第２修正方式に従って修正した結果を示す概略図である。
【図１６】図７の動作プログラムを第３修正方式に従って修正した結果を示す概略図である。
【図１７】図８の動作プログラムを第３修正方式に従って修正した結果を示す概略図である。
【図１８】本実施形態のプログラム修正装置がロボットの動作プログラムを修正する手順を示すフローチャートである。
【図１９】本実施形態のプログラム修正装置によって修正された動作プログラムに対応する工具先端点の移動速度Ｖの時間変化を示す第１のグラフである。
【図２０】本実施形態のプログラム修正装置によって修正された動作プログラムに対応する工具先端点の移動速度Ｖの時間変化を示す第２のグラフである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態を、図面を参照して詳細に説明する。各図面において、同様の構成要素には同様の符号が付与されている。なお、以下に記載される内容は、特許請求の範囲に記載される発明の技術的範囲や用語の意義等を限定するものではない。
【００１０】
図１〜図２０を参照して、本発明の１つの実施形態のプログラム修正装置について説明する。図１は、本実施形態のプログラム修正装置１を含む例示的なロボットシステムの構成を示すブロック図である。図１のように、本例のロボットシステムは、種々の産業用ロボット２と、ロボット２の動作を制御する制御装置３と、を含んでおり、プログラム修正装置１は、制御装置３に接続されている。制御装置３には、教示操作盤４がさらに接続されている。本実施形態のプログラム修正装置１の詳細について説明する前に、上記のロボット２、制御装置３、及び教示操作盤４の各々について簡単に説明する。
【００１１】
図１のように、本例のロボット２は、一般的な垂直多関節ロボットであり、種々の工具ＴＬが装着されるアーム２０を備えている。アーム２０の手首部２１に装着される工具ＴＬは、例えば、レーザ切断用のレーザ発振器、アーク溶接用の溶接トーチ、又はバリ取り用のスピンドル等が含まれる。また、本例の制御装置３は、ＣＰＵ、記憶装置、入力装置、及び表示装置等を備えたデジタルコンピュータであり、予め用意された動作プログラムに従ってロボット２の各部の動作を制御する機能を有している。
【００１２】
また、本例の教示操作盤４は、ロボット２の教示操作に使用される専用の機器であり、種々の情報をオペレータに表示する表示部４１と、教示操作の入力をオペレータから受け付ける入力部４２と、を備えている。本例の教示操作盤４は、制御装置３と協働してロボット２の動作プログラムを生成する機能を有している。より具体的には、オペレータが教示操作盤４を用いてロボット２の教示操作を実行すると、その教示操作によるロボット２の動作を再生するための動作プログラムが制御装置３において生成される。このようにして生成された動作プログラムは、プログラム修正装置１に送信されてプログラム修正装置１の記憶部１Ｍに格納される。
【００１３】
図２は、図１中のプログラム修正装置１の構成を示すブロック図である。本例のプログラム修正装置１は、制御装置３と同様のデジタルコンピュータであり、上記の教示操作によって生成された動作プログラムに基づくロボット２の動作シミュレーションを実行する機能、及び動作シミュレーションの結果に応じて動作プログラムを修正する機能等を有している。プログラム修正装置１は、制御装置３に内蔵されていてもよい。図２のように、本例のプログラム修正装置１は、種々のデータを格納する記憶部１Ｍの他に、実行部１０、算出部１１、設定部１２、判定部１３、評価部１４、選択部１５、及び修正部１６等を有している。これら機能部の詳細については後述する。上述した通り、記憶部１Ｍには、ロボット２の動作プログラムが予め格納されている。
【００１４】
図３は、ロボット２の動作プログラムの第１の例を示す概略図である。図３のように、本例の動作プログラムは、順番に実行される複数の動作指令から構成されている。より具体的に、本例の動作プログラムは、ロボット２に装着された工具ＴＬの先端点を所定の移動経路ＭＰに沿って指定速度Ｖｃで移動させるのに用いられる。本例の指定速度Ｖｃは１００ｍｍ／ｓｅｃである。図４は、図３の動作プログラムによる工具先端点の移動経路ＭＰの一部を示す概略図である。図４のように、本例の移動経路ＭＰは、工具先端点の進行方向が変化する曲がり角ＣＮを含んでいる。図４の移動経路ＭＰ上の第１教示点Ｐ１は、曲がり角ＣＮの手前に位置する教示点であり、第２教示点Ｐ２は、工具先端点の進行方向が変化する教示点である。また、図４の移動経路ＭＰ上の第３教示点Ｐ３は、曲がり角ＣＮの先方に位置する教示点であり、第４教示点Ｐ４は、第２教示点Ｐ２から第３教示点Ｐ３に至る経路の延長線上に位置する教示点である。移動経路ＭＰ上の他の教示点については後述する。ここで図３を参照すると、本例の動作プログラムの第４行（４：チョクセン  イチ［１］１００ｍｍ／ｓｅｃ  ナメラカ１００）は、ロボット２の工具先端点を直線補間によって図４中の第１教示点Ｐ１まで速度１００ｍｍ／ｓｅｃで移動させるための動作指令である。
【００１５】
同様に、図３の動作プログラムの第５行（５：チョクセン  イチ［２］１００ｍｍ／ｓｅｃ  ナメラカ１００）は、ロボット２の工具先端点を直線補間によって図４中の第２教示点Ｐ２まで速度１００ｍｍ／ｓｅｃで移動させるための動作指令である。また、図３の動作プログラムの第６行（６：チョクセン  イチ［３］１００ｍｍ／ｓｅｃ  ナメラカ１００）は、ロボット２の工具先端点を直線補間によって図４中の第３教示点Ｐ３まで速度１００ｍｍ／ｓｅｃで移動させるための動作指令である。そして、図３の動作プログラムの第７行（７：チョクセン  イチ［４］１００ｍｍ／ｓｅｃ  ナメラカ１００）は、ロボット２の工具先端点を直線補間によって図４中の第４教示点Ｐ４まで速度１００ｍｍ／ｓｅｃで移動させるための動作指令である。
【００１６】
なお、各々の動作指令中の「ナメラカ１００」は、工具先端点を減速することなく指令位置に位置決めし、かつ各々の動作指令の完了直後に次の動作指令を開始するための指令である。図４のように、工具先端点の移動経路ＭＰ上に曲がり角ＣＮが存在する場合には、工具先端点が曲がり角ＣＮを通過する間に、工具先端点の移動速度が指定速度Ｖｃから大きく低下する虞があり、その結果、ワークの加工精度が低下する虞がある。そのため、本実施形態のプログラム修正装置１は、工具先端点が曲がり角ＣＮを通過する間の移動速度が指定速度Ｖｃから大きく低下しないように動作プログラムを修正する機能を有している。この点についてはさらに後述する。図５〜図８には、ロボット２の動作プログラムの別の例が示されている。
【００１７】
再び図２を参照すると、プログラム修正装置１の実行部１０は、記憶部１Ｍ内の動作プログラムに基づいてロボット２の動作シミュレーションを実行する機能を有している。また、プログラム修正装置１の算出部１１は、実行部１０による動作シミュレーションの結果から、工具先端点が移動経路ＭＰを通過する期間中の工具先端点の移動速度Ｖの時間変化を算出する機能を有している。より具体的に、本例の算出部１１は、ロボット２の駆動モータに対する速度指令に基づいて、工具先端点の移動速度Ｖを所定の周期で算出するようになっている。ロボット２の駆動モータに対する速度指令は、動作プログラムに基づく動作シミュレーションの結果から抽出される。図９は、本例の算出部１１によって算出された工具先端点の移動速度Ｖの時間変化を示すグラフである。図９のグラフは、図３の動作プログラムに対応する移動速度Ｖの時間変化を示している。図９のグラフから分かるように、図３の動作プログラムが実行されると、工具先端点の移動速度Ｖは、時間ｔ１で指定速度Ｖｃから減少し始め、時間ｔ２で最小値Ｖｍｉに到達する。時間ｔ１から時間ｔ２までの間に、工具先端点の移動速度Ｖは単調に減少する。その後、工具先端点の移動速度Ｖは、時間ｔ３で指定速度Ｖｃに収束するまで単調に増加する。ここで、移動速度Ｖが指定速度Ｖｃに収束することは、それ以降の移動速度Ｖが指定速度Ｖｃで一定に保たれることを意味する。
【００１８】
図５は、ロボット２の動作プログラムの第２の例を示す概略図である。図３と図５とを比較すると分かるように、本例の動作プログラムは、第２教示点Ｐ２に到達した工具先端点を第５教示点Ｐ５まで速度２００ｍｍ／ｓｅｃで移動させるための動作指令をさらに含んでいる（図５中の第６行を参照）。図４から分かるように、第５教示点Ｐ５は、第２教示点Ｐ２と第３教示点Ｐ３とを結んだ線分上に位置している。図１０は、図５の動作プログラムに対応する工具先端点の移動速度Ｖの時間変化を示すグラフである。図１０のグラフから分かるように、図５の動作プログラムが実行されると、工具先端点の移動速度Ｖは、時間ｔ１で指定速度Ｖｃから減少し始め、時間ｔ２で最小値Ｖｍｉに到達する。時間ｔ１から時間ｔ２までの間に、工具先端点の移動速度Ｖは単調に減少する。その後、工具先端点の移動速度Ｖは、時間ｔ３で指定速度Ｖｃに収束するまで非単調に増加する。より具体的に、工具先端点の移動速度Ｖは、時間ｔ２と時間ｔ３との間で極大値及び極小値を経由して指定速度Ｖｃに収束する。上記の極大値は指定速度Ｖｃよりも大きい。また、上記の極小値は指定速度Ｖｃよりも小さい。
【００１９】
図６は、図１中のロボット２の動作プログラムの第３の例を示す概略図である。図５と図６とを比較すると分かるように、本例の動作プログラムは、第６行の動作指令における速度指令の数値のみが図５の動作プログラムと相違している。より具体的には、図５中の第６行における速度指令の数値が２００ｍｍ／ｓｅｃであるのに対して、図６中の第６行における速度指令の数値は１００ｍｍ／ｓｅｃである。図１１は、図６の動作プログラムに対応する工具先端点の移動速度Ｖの時間変化を示すグラフである。図１１のグラフから分かるように、図６の動作プログラムが実行されると、工具先端点の移動速度Ｖは、時間ｔ１で指定速度Ｖｃから減少し始め、時間ｔ２で最小値Ｖｍｉに到達する。時間ｔ１から時間ｔ２までの間に、工具先端点の移動速度Ｖは単調に減少する。
【００２０】
その後、工具先端点の移動速度Ｖは、時間ｔ３で指定速度Ｖｃに収束するまで非単調に増加する。より具体的に、工具先端点の移動速度Ｖは、時間ｔ２と時間ｔ３との間で極大値及び極小値を経由して指定速度Ｖｃに収束する。ただし、図１１中の極大値は指定速度Ｖｃよりも小さい。また、図１１中の極小値は図１０中の極小値よりも小さい。図１０及び図１１から分かるように、移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令と、移動速度Ｖが指定速度Ｖｃに収束するときの動作指令と、の間に介在する動作指令（図５及び図６中の第６行）は、移動速度Ｖが最小値Ｖｍｉから指定速度Ｖｃまで非単調に増加することの原因になりうる。
【００２１】
図７は、ロボット２の動作プログラムの第４の例を示す概略図である。図３と図７とを比較すると分かるように、本例の動作プログラムは、第１教示点Ｐ１に到達した工具先端点を第６教示点Ｐ６まで速度１００ｍｍ／ｓｅｃで移動させるための動作指令をさらに含んでいる（図７中の第５行を参照）。図４から分かるように、第６教示点Ｐ６は、第１教示点Ｐ１と第２教示点Ｐ２とを結んだ線分上に位置している。図１２は、図７の動作プログラムに対応する工具先端点の移動速度Ｖの時間変化を示すグラフである。図１２のグラフから分かるように、図７の動作プログラムが実行されると、工具先端点の移動速度Ｖは、時間ｔ１で指定速度Ｖｃから減少し始め、時間ｔ２で最小値Ｖｍｉに到達する。時間ｔ１から時間ｔ２までの間に、工具先端点の移動速度Ｖは非単調に減少する。より具体的に、工具先端点の移動速度Ｖは、時間ｔ１と時間ｔ２との間で極小値及び極大値を経由して最小値Ｖｍｉに到達する。その後、工具先端点の移動速度Ｖは、時間ｔ３で指定速度Ｖｃに収束するまで単調に増加する。
【００２２】
図８は、ロボット２の動作プログラムの第５の例を示す概略図である。図７と図８とを比較すると分かるように、本例の動作プログラムは、第２教示点Ｐ２に到達した工具先端点を第５教示点Ｐ５まで速度１００ｍｍ／ｓｅｃで移動させるための動作指令をさらに含んでいる（図８中の第７行を参照）。上述した通り、第５教示点Ｐ５は、第２教示点Ｐ２と第３教示点Ｐ３とを結んだ直線上に位置している。図１３は、図８の動作プログラムに対応する工具先端点の移動速度Ｖの時間変化を示すグラフである。
【００２３】
図１３のグラフから分かるように、図８の動作プログラムが実行されると、工具先端点の移動速度Ｖは、時間ｔ１で指定速度Ｖｃから減少し始め、時間ｔ２で最小値Ｖｍｉに到達する。時間ｔ１から時間ｔ２までの間に、工具先端点の移動速度Ｖは非単調に減少する。より具体的に、工具先端点の移動速度Ｖは、時間ｔ１と時間ｔ２との間で極小値及び極大値を経由して最小値Ｖｍｉに到達する。その後、工具先端点の移動速度Ｖは、時間ｔ３で指定速度Ｖｃに収束するまで非単調に増加する。より具体的に、工具先端点の移動速度Ｖは、時間ｔ２と時間ｔ３との間で極大値及び極小値を経由して指定速度Ｖｃに収束する。図１２及び図１３から分かるように、移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令の直前に配置された動作指令（図７及び図８中の第５行）は、移動速度Ｖが指定速度Ｖｃから最小値Ｖｍｉまで非単調に減少することの原因になりうる。
【００２４】
図９〜図１３を参照して説明した通り、工具先端点の移動速度Ｖの時間変化を表す波形は、ロボット２の動作プログラムの内容に応じて種々に変形されうる。なお、本例の算出部１１が算出した移動速度Ｖの時間変化は、上記の記憶部１Ｍに所定の形式で格納されうる。例えば、算出部が算出した移動速度Ｖの時間変化は、所定の周期で算出した移動速度Ｖの数値を動作プログラムの行番号と関連付けた時系列データの形式で格納されうる。これにより、複数の動作指令のそれぞれと工具先端点の速度変化との間の対応関係を確認することが可能になる。例えば、工具先端点の移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令、及び工具先端点の移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令等を特定することが可能になる。
【００２５】
再び図２を参照すると、プログラム修正装置１の設定部１２は、ロボット２の工具先端点が曲がり角ＣＮを通過する期間中の移動速度Ｖの許容範囲を設定する機能を有している。ここで、工具先端点が曲がり角ＣＮを通過する期間とは、工具先端点の移動速度Ｖが指定速度Ｖｃから減少し始める時間（図９〜図１３中の時間ｔ１）と、移動速度Ｖが最小値Ｖｍｉから増加して指定速度Ｖｃに収束する時間（図９〜図１３中の時間ｔ３）と、の間の期間のことである。図３及び図５〜図８では、上記の期間における工具先端点の動作を規定する動作指令に下線が引かれている。特に、本例のプログラム修正装置１では、上記の許容範囲を画定する上限値Ｕ及び下限値Ｌが予めオペレータによって指定されており、それら上限値Ｕ及び下限値Ｌが予め記憶部１Ｍ等に格納されている。移動速度Ｖの許容範囲の上限値Ｕ及び下限値Ｌの例が図９〜図１３のグラフに示されている。
【００２６】
続いて、プログラム修正装置１の判定部１３は、工具先端点が曲がり角ＣＮを通過する期間中の移動速度Ｖの時間変化が上記の許容範囲に収まるかどうかを判定する機能を有している。特に、本例の判定部１３は、算出部１１が算出した移動速度Ｖの時間変化における最小値Ｖｍｉが上記の下限値Ｌ以下であるかどうかを判定する機能を有している。図９〜図１３の例では、いずれも移動速度Ｖの最小値Ｖｍｉが下限値Ｌ以下になっている。続いて、プログラム修正装置１の評価部１４は、判定部１３による判定結果が正である場合に（すなわち、移動速度Ｖの最小値Ｖｍｉが下限値Ｌ以下である場合に）移動速度Ｖの時間変化のパターンを評価する機能を有している。以下の説明では、工具先端点の移動速度Ｖの時間変化を単に「速度変化」と称することがある。本例の評価部１４が工具先端点の速度変化のパターンを評価するときの具体的な手順について以下に詳細に説明する。
【００２７】
先ず、本例の評価部１４は、工具先端点が曲がり角ＣＮを通過する期間中の速度変化の波形を特定し、次いで、当該速度変化の波形を、移動速度Ｖが減少し始める時間（図９〜図１３中の時間ｔ１）から最小値Ｖｍｉに到達する時間（図９〜図１３中の時間ｔ２）までの区間と、移動速度Ｖが増加し始める時間（図９〜図１３中の時間ｔ２）から指定速度Ｖｃに収束する時間（図９〜図１３中の時間ｔ３）までの区間と、に分割する。以下では、前者の区間を第１区間Ｓ１と称し、後者の区間を第２区間Ｓ２と称する。次いで、本例の評価部１４は、時間変化の波形の第１区間Ｓ１及び第２区間Ｓ２のそれぞれの単調性を判定する。つまり、本例の評価部１４は、移動速度Ｖが第１区間Ｓ１で単調に減少するのか或いは非単調に減少するのかを判定するとともに、移動速度Ｖが第２区間Ｓ２で単調に増加するのか或いは非単調に増加するのかを判定する。そして、本例の評価部１４は、上述した単調性の判定結果に基づいて、速度変化のパターンが予め定めた複数の類型のどれに分類されるかを評価する。
【００２８】
ここで、本例のプログラム修正装置１では、工具先端点の速度変化のパターンを表す複数の類型として、以下に説明する第１〜第４類型が予め定義されている。第１類型は、速度変化の波形が第１区間Ｓ１で単調に減少し、かつ第２区間Ｓ２で単調に増加する速度変化のパターンを表している（図９を参照）。第２類型は、速度変化の波形が第１区間Ｓ１で単調に減少し、かつ第２区間Ｓ２で非単調に増加する速度変化のパターンを表している（図１０及び図１１を参照）。第３類型は、速度変化の波形が第１区間Ｓ１で非単調に減少し、かつ第２区間Ｓ２で単調に増加するパターンを表している（図１２を参照）。そして、第４類型は、速度変化の波形が第１区間Ｓ１で非単調に減少し、かつ第２区間Ｓ２で非単調に増加するパターンを表している（図１３を参照）。つまり、本例の評価部１４は、工具先端点の速度変化のパターンが上述した第１〜第４類型のどれに分類されるかを特定する。評価部１４によるパターン評価の結果は後述する選択部１５に送信される。
【００２９】
再び図２を参照すると、プログラム修正装置１の選択部１５は、動作プログラムを修正するための修正方式を、評価部１４によるパターン評価の結果に応じて選択する機能を有している。ここで、本例のプログラム修正装置１では、移動速度Ｖの最小値Ｖｍｉを増加させるための複数の修正方式として、以下に説明する第１〜第３修正方式が予め定義されている。第１修正方式は、動作プログラムに含まれる複数の動作指令のうちの移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令を特定し、その動作指令の直後に新たな動作指令を追加することを含む修正方式である。また、第２修正方式は、動作プログラムに含まれる複数の動作指令のうちの移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令を特定し、その動作指令の直後の動作指令の内容を変更することを含む修正方式である。
【００３０】
そして、第３修正方式は、動作プログラムに含まれる複数の動作指令のうちの、移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令を特定し、その動作指令の直前に配置された動作指令を削除することを含む修正方式である。上述した第１〜第３修正方式は、プログラム修正装置１の記憶部１Ｍ等に予め格納されている。特に、第１〜第３修正方式の各々は、上述した速度変化のパターンを表す複数の類型のいずれかと関連付けて格納されている。例えば、動作プログラムの第１修正方式は、工具先端点の速度変化のパターンの第１類型と関連付けられており、動作プログラムの第２修正方式は、工具先端点の速度変化のパターンの第２類型と関連付けられている。そして、動作プログラムの第３修正方式は、工具先端点の速度変化のパターンの第３類型及び第４類型のそれぞれと関連付けられている。
【００３１】
つまり、本例の選択部１５は、移動速度Ｖの最小値Ｖｍｉを増加させるための動作プログラムの修正方式として、上記のパターン評価で特定された類型と関連付けられた修正方式を選択するようになっている。例えば、速度変化のパターンが第１類型に分類される場合には（図９を参照）、第１類型と関連付けられた第１修正方式が選択される。同様に、速度変化のパターンが第２類型に分類される場合には（図１０及び図１１を参照）、第２類型と関連付けられた第２修正方式が選択される。同様に、速度変化のパターンが第３類型又は第４類型に分類される場合には（図１２及び図１３を参照）、それら類型と関連付けられた第３修正方式が選択される。
【００３２】
再び図２を参照すると、プログラム修正装置１の修正部１６は、選択部１５が選択した修正方式に従って動作プログラムを修正する機能を有している。例えば、プログラム修正装置１の選択部が上記の第１修正方式を選択したら、本例の修正部１６は、移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令の直後に新たな動作指令を追加する。図１４は、図３の動作プログラムを第１修正方式に従って修正した結果を示す概略図である。上述した通り、図３の動作プログラムによる工具先端点の時間変化のパターンは第１類型に分類される（図９を参照）。通常、第１類型において移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令は、工具先端点を上記の第２教示点Ｐ２まで移動させるための動作指令である（例えば、図３中の第５行を参照）。図３と図１４を比較すると分かるように、第１修正方式に従って、工具先端点を第２教示点Ｐ２から第５教示点Ｐ５まで移動させるための新たな動作指令が動作プログラムに追加されている（図１４中の第６行を参照）。
【００３３】
新たな動作指令中の速度指令値は、指定速度Ｖｃ（Ｖｃ＝１００ｍｍ／ｓｅｃ）よりも大きくされる。図１４の例では、新たな動作指令中の速度指令値が１５０ｍｍ／ｓｅｃにされている。ここで、工具先端点が第２教示点Ｐ２から第５教示点Ｐ５まで移動する期間は、上述した速度変化の第２区間Ｓ２の一部に相当する。そのため、動作プログラムが第１修正方式に従って修正されると、移動速度Ｖが第２区間Ｓ２内で指定速度Ｖｃよりも大きい速度指令値（例えば１５０ｍｍ／ｓｅｃ）に近づくように、速度変化のグラフが変形されうる。これにより、修正後の動作プログラムによる移動速度Ｖの最小値Ｖｍｉが、修正前の動作プログラムによる移動速度Ｖの最小値Ｖｍｉよりも大きくなることが期待される。
【００３４】
また、プログラム修正装置１の選択部１５が上記の第２修正方式を選択したら、本例の修正部１６は、移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令の直後に配置された動作指令の内容を変更する。図１５は、図６の動作プログラムを第２修正方式に従って修正した結果を示す概略図である。上述した通り、図６の動作プログラムによる工具先端点の時間変化のパターンは第２類型に分類される（図１１を参照）。通常、第２類型において移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令は、工具先端点を上記の第２教示点Ｐ２まで移動させるための動作指令である（例えば、図６中の第５行を参照）。図６と図１５とを比較すると分かるように、本例の第２修正方式に従って、工具先端点を第２教示点Ｐ２から第５教示点Ｐ５まで移動させるための動作指令（第６行）における速度指令値が変更されている。より具体的に、図１５の例では、第６行の動作指令における速度指令値が１００ｍｍ／ｓｅｃから１５０ｍｍ／ｓｅｃに変更されている。
【００３５】
このように、本例の第２修正方式は、工具先端点の移動速度Ｖが減少し始めるときの動作指令の直後の動作指令における速度指令値を増加させることを含んでいる（図６及び図１５の第６行を参照）。特に、上記の速度指令値が指定速度Ｖｃ以下である場合には、上記の速度指令値が指定速度Ｖｃよりも大きくされる。ここで、工具先端点が第２教示点Ｐ２から第５教示点Ｐ５まで移動する期間は、上述した速度変化の第２区間Ｓ２の一部に相当する。そのため、動作プログラムが第２修正方式に従って修正されると、工具先端点の移動速度Ｖが第２区間Ｓ２内でより大きい速度指令値（例えば１５０ｍｍ／ｓｅｃ）に近づくように、速度変化のグラフが変形されうる。これにより、修正後の動作プログラムによる移動速度Ｖの最小値Ｖｍｉは、修正前の動作プログラムによる移動速度Ｖの最小値Ｖｍｉよりも大きくなることが期待される。なお、本例の第２修正方式は、必要に応じて、移動速度Ｖが減少し始めるときの動作指令の直後の動作指令における位置指令、加速度指令、及び位置決め指令等を変更することをさらに含みうる。
【００３６】
また、プログラム修正装置１の選択部１５が上記の第３修正方式を選択したら、本例の修正部１６は、動作プログラムに含まれる複数の動作指令のうちの、移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令の直前に配置された動作指令を削除する。図１６は、図７の動作プログラムを第３修正方式に従って修正した結果を示す概略図である。上述した通り、図７の動作プログラムによる工具先端点の時間変化のパターンは第３類型に分類される（図１２を参照）。通常、第３類型において移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令は、工具先端点を上記の第２教示点Ｐ２まで移動させるための動作指令である（例えば、図７中の第６行を参照）。図７と図１６とを比較すると分かるように、本例の第３修正方式によって、工具先端点を第２教示点Ｐ２まで移動させるため動作指令（第６行）の直前に配置された動作指令（第５行）が削除されている。より具体的に、図１６の例では、工具先端点を第１教示点Ｐ１から第６教示点Ｐ６まで速度１００ｍｍ／ｓｅｃで移動させるための動作指令（第５行）が削除されている。
【００３７】
図１２及び図１３を参照して説明した通り、移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令の直前に配置された動作指令（図７及び図８中の第５行）は、上記の第１区間Ｓ１における工具先端点の速度変化を非単調にする原因になりうる。そのため、第３修正方式に従って上記の動作指令が削除されると、工具先端点の移動速度Ｖが第１区間Ｓ１内で単調に減少するように、工具先端点の速度変化のグラフが変形されうる。つまり、図７の動作プログラムが第３修正方式に従って修正されると、工具先端点の速度変化のパターンが第３類型から第１類型に変更されることになる。
【００３８】
図１７は、図８の動作プログラムを第３修正方式に従って修正した結果を示す概略図である。上述した通り、図８の動作プログラムによる工具先端点の時間変化のパターンは第４類型に分類される（図１３を参照）。通常、第４類型において移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令は、工具先端点を上記の第２教示点Ｐ２まで移動させるための動作指令である（例えば、図８中の第６行を参照）。図８と図１７とを比較すると分かるように、本例の第３修正方式に従って、工具先端点を第２教示点Ｐ２まで移動させるため動作指令（第６行）の直前に配置された動作指令（第５行）が削除されている。より具体的に、図１７の例では、工具先端点を第１教示点Ｐ１から第６教示点Ｐ６まで速度１００ｍｍ／ｓｅｃで移動させるための動作指令が削除されている。図１６の例と同様に、第３修正方式に従って上記の動作指令が削除されると、工具先端点の移動速度Ｖが第１区間Ｓ１内で単調に減少するように、工具先端点の速度変化のグラフが変形されうる。つまり、図８の動作プログラムが第３修正方式に従って修正されると、工具先端点の速度変化のパターンが第４類型から第２類型に変更されることになる。
【００３９】
次に、本実施形態のプログラム修正装置１の動作の概要について説明する。図１８は、本実施形態のプログラム修正装置１がロボット２の動作プログラムを修正する手順を示すフローチャートである。図１８のように、ステップＳ１では、プログラム修正装置１の設定部１２が、ロボット２の工具先端点が曲がり角ＣＮを通過する期間中の移動速度Ｖの上限値Ｕ及び下限値Ｌを設定する。上記の上限値Ｕ及び下限値Ｌは、予めオペレータによって指定されて記憶部１Ｍ等に格納されている。ステップＳ２では、プログラム修正装置１の実行部１０が、記憶部１Ｍ内の動作プログラムに基づいてロボット２の動作シミュレーションを実行する。ステップＳ３では、プログラム修正装置１の算出部１１が、工具先端点の移動速度Ｖの時間変化を算出する。より具体的に、ステップＳ３では、算出部１１が、ステップＳ２で実行された動作シミュレーションの結果から、工具先端点の移動速度Ｖを所定の周期で算出する。ステップＳ４では、算出部１１が、所定の周期で算出した工具先端点の移動速度Ｖを、動作プログラムの行番号と関連付けて記憶部１Ｍに格納する。
【００４０】
ステップＳ５では、プログラム修正装置１の判定部１３が、工具先端点の移動速度Ｖの最小値Ｖｍｉが上記の下限値Ｌ以下であるかどうかを判定する。工具先端点の移動速度Ｖの最小値Ｖｍｉが下限値Ｌよりも大きい場合には（ステップＳ５のＮＯ）、動作プログラムを修正する必要はないので、プログラム修正装置１はフローチャートを終了する。他方、工具先端点の移動速度Ｖの最小値Ｖｍｉが下限値Ｌ以下である場合には（ステップＳ５のＹＥＳ）、プログラム修正装置１の評価部１４が、工具先端点が曲がり角ＣＮを通過する間の工具先端点の速度変化のパターンを評価する（ステップＳ６）。より具体的に、ステップＳ６では、評価部１４が、工具先端点の速度変化のパターンを、予め定義された複数の類型（すなわち、上記の第１〜第４類型）のいずれかに分類する。
【００４１】
ステップＳ７では、プログラム修正装置１の選択部１５が、評価部１４によるパターン評価の結果に応じて、移動速度Ｖの最小値Ｖｍｉを増加させるための動作プログラムの修正方式を選択する。より具体的に、ステップＳ７では、選択部１５が、評価部１４によるパターン評価の結果に応じて、予め定義された複数の修正方式（すなわち、上記の第１〜第３修正方式）のいずれかを選択する。上述した通り、プログラム修正装置１の記憶部１Ｍには、動作プログラムの複数の修正方式の各々が、工具先端点の速度変化のパターンを表す複数の類型のいずれかと関連付けて記憶されている。つまり、ステップＳ７では、選択部１５が、上記のパターン評価で特定された類型と関連付けられた修正方式を、移動速度Ｖの最小値Ｖｍｉを増加させるための修正方式として選択する。例えば、工具先端点の速度変化のパターンが上記の第１類型である場合（図９を参照）、選択部１５は、移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令の直後に新たな動作指令を追加することを含む第１修正方式を選択する。
【００４２】
また、工具先端点の速度変化のパターンが上記の第２類型である場合（図１１を参照）、選択部１５は、移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令の直後に配置された動作指令の内容を変更することを含む第２修正方式を選択する。また、工具先端点の速度変化のパターンが上記の第３類型である場合（図１２を参照）、選択部１５は、移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令の直前の動作指令を削除することを含む第３修正方式を選択する。工具先端点の速度変化のパターンが上記の第４類型である場合も（図１３を参照）、選択部１５は、移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令の直前の動作指令を削除することを含む第３修正方式を選択する。
【００４３】
再び図１８を参照すると、ステップＳ８では、プログラム修正装置１の修正部１６が、ステップＳ７で選択された修正方式に従って動作プログラムを修正する。つまり、ステップＳ８では、修正部１６が上記の第１〜第３修正方式のいずれかに従って動作プログラムを修正する。その後、修正後の動作プログラムについて上記のステップＳ２〜ステップＳ４が再び実行される。次いで、プログラム修正装置１の判定部１３が、修正後の動作プログラムによる移動速度Ｖの最小値Ｖｍｉが下限値Ｌ以下であるかどうかを再び判定する（ステップＳ５）。そして、移動速度Ｖの最小値Ｖｍｉが下限値Ｌよりも大きい場合には（ステップＳ５のＮＯ）フローチャートが終了される一方で、移動速度Ｖの最小値Ｖｍｉが下限値Ｌ以下である場合には（ステップＳ５のＹＥＳ）修正後の動作プログラムについて上記のステップＳ６〜Ｓ８が再び実行される。このように、本例のプログラム修正装置１は、工具先端点の移動速度Ｖの最小値Ｖｍｉが下限値Ｌよりも大きくなるまで、上記の第１〜第３修正方式のいずれかに従って動作プログラムを繰り返し修正することになる。
【００４４】
図１９及び図２０は、本実施形態のプログラム修正装置１によって修正された動作プログラムに対応する工具先端点の移動速度Ｖの時間変化を示すグラフである。図１９及び図２０に示される速度変化のパターンはいずれも上記の第２類型に分類される。ただし、それら２つのパターンは、第２区間Ｓ２における極大値の大きさが互いに相違している。このような極大値の差は、工具先端点を第２教示点Ｐ２から第５教示点Ｐ５まで移動させるための動作指令における速度指令値の差に起因している。より具体的に、図１９の例では、上記の動作指令における速度指令値が１２０ｍｍ／ｓｅｃに設定されているのに対して、図２０の例では、上記の動作指令における速度指令値が１８０ｍｍ／ｓｅｃに設定されている。
【００４５】
図１９及び図２０のような速度変化は、例えば、図９のような第１類型の速度変化パターンを与える動作プログラムに第１修正方式及び第２修正方式を順番に適用することによって達成されうる。ただし、第１修正方式が適用された結果、移動速度Ｖの最小値Ｖｍｉが下限値Ｌよりも大きくなった場合には、第２修正方式がさらに適用される必要はない。また、第１修正方式の適用後に、第２修正方式の適用が２回以上繰り返される場合もある。或いは、図１９及び図２０のような速度変化は、図１１のような第２類型の速度変化パターンを与える動作プログラムに第２修正方式を適用することによって達成されうる。この際、第２修正方式の適用が２回以上繰り返される場合もある。
【００４６】
或いは、図１９及び図２０のような速度変化は、図１２のような第３類型の速度変化パターンを与える動作プログラムに第３修正方式、第１修正方式、及び第２修正方式を順番に適用することによって達成されうる。ただし、第３修正方式及びそれに次ぐ第１修正方式が適用された結果、移動速度Ｖの最小値Ｖｍｉが下限値Ｌよりも大きくなった場合には、第２修正方式がさらに適用される必要はない。また、第３修正方式及びそれに次ぐ第１修正方式の適用後に、第２修正方式の適用が２回以上繰り返される場合もある。或いは、図１９及び図２０のような速度変化は、図１３のような第４類型の速度変化パターンを与える動作プログラムに第３修正方式及び第２修正方式を順番に適用することによって達成されうる。ただし、第３修正方式が適用された結果、移動速度Ｖの最小値Ｖｍｉが下限値Ｌよりも大きくなった場合には、第２修正方式がさらに適用される必要はない。また、第３修正方式の実行後に、第２修正方式が回以上繰り返される場合もある。
【００４７】
以上のように、本例プログラム修正装置１によれば、工具先端点の移動速度Ｖの最小値Ｖｍｉが下限値Ｌ以下である場合に、工具先端点の速度変化のパターンが評価されるとともに（上記のステップＳ６を参照）、速度変化のパターンの評価結果に応じた適切な動作プログラムの修正方式が選択される（上記のステップＳ７を参照）。よって、本例のプログラム修正装置１によれば、ロボット２のハードウェア設定を変更せずに既存の動作プログラムを修正するだけで工具先端点の速度低下を軽減できるようになる。
【００４８】
また、本例のプログラム修正装置１によれば、工具先端点の移動速度Ｖの最小値Ｖｍｉが下限値Ｌ以下になるまで動作プログラムの修正が繰り返される（上記のステップＳ５を参照）。よって、本例のプログラム修正装置１によれば、工具先端点の移動速度Ｖが下限値Ｌを越えて減少することに起因する加工精度の低下（例えば加工過多）を確実に防止できるようになる。
【００４９】
また、本例のプログラム修正装置１によれば、動作プログラム中の複数の動作指令のそれぞれが実行される間の工具先端点の速度変化が順番に算出されるので、複数の動作指令のそれぞれと工具先端点の速度変化との間の対応関係を確認することが可能になる。よって、本例のプログラム修正装置１によれば、工具先端点の移動速度Ｖが指定速度Ｖｃから減少し始めるときの動作指令、及び工具先端点の移動速度Ｖが最小値Ｖｍｉに到達するときの動作指令等を特定することが可能になる。
【００５０】
また、本例のプログラム修正装置１によれば、典型的な動作プログラムによって与えられる工具先端点の速度変化パターンに適した修正方式を選択することが可能になる。特に、本例のプログラム修正装置１によれば、工具先端点の移動速度Ｖが第１区間Ｓ１で単調に減少し、かつ第２区間Ｓ２で単調に増加する速度変化パターン（すなわち第１類型）に適した第１修正方式を選択することが可能になる。同様に、本例のプログラム修正装置１によれば、工具先端点の移動速度Ｖが第１区間Ｓ１で単調に減少し、かつ第２区間Ｓ２で非単調に増加する速度変化パターン（すなわち第２類型）に適した第２修正方式を選択することが可能になる。同様に、本例のプログラム修正装置１によれば、工具先端点の移動速度Ｖが第１区間Ｓ１で非単調に減少する速度変化パターン（すなわち、第３類型及び第４類型）に適した第３修正方式を選択することが可能になる。
【００５１】
本発明は、上記実施形態のみに限定されるものではなく、特許請求の範囲に記載された範囲内で種々改変されうる。例えば、図３及び図５〜図８等に示される動作プログラムは典型例にすぎず、本発明によるロボット２の動作プログラムがそれらに限定されることはない。同様に、上記の第１〜第４類型は工具先端点の速度変化パターンの典型例にすぎないし、上記の第１〜第３修正方式は動作プログラムの修正方式の典型例にすぎない。つまり、速度変化パターンの他の類型、及び動作プログラムの他の修正方式が本発明の範囲内で採用されうることに留意すべきである。さらに、上記実施形態に記載されたロボットシステムの各装置の機能及び構成は一例にすぎず、本発明の効果を達成するために多様な機能及び構成が採用されうる。
【符号の説明】
【００５２】
１    プログラム修正装置
１０    実行部
１１    算出部
１２    設定部
１３    判定部
１４    評価部
１５    選択部
１６    修正部
１Ｍ    記憶部
２    ロボット
３    制御装置
４    教示操作盤
ＣＮ    曲がり角
Ｌ    下限値
ＭＰ    移動経路
Ｐ１    第１教示点
Ｐ２    第２教示点
Ｐ３    第３教示点
Ｐ４    第４教示点
Ｐ５    第５教示点
Ｐ６    第６教示点
Ｓ１    第１区間
Ｓ２    第２区間
ＴＬ    工具
Ｕ    上限値
Ｖ    移動速度
Ｖｃ    指定速度
Ｖｍｉ    最小値
【図１】
0006006277.tif 000002
【図２】
0006006277.tif 000003
【図３】
0006006277.tif 000004
【図４】
0006006277.tif 000005
【図５】
0006006277.tif 000006
【図６】
0006006277.tif 000007
【図７】
0006006277.tif 000008
【図８】
0006006277.tif 000009
【図９】
0006006277.tif 000010
【図１０】
0006006277.tif 000011
【図１１】
0006006277.tif 000012
【図１２】
0006006277.tif 000013
【図１３】
0006006277.tif 000014
【図１４】
0006006277.tif 000015
【図１５】
0006006277.tif 000016
【図１６】
0006006277.tif 000017
【図１７】
0006006277.tif 000018
【図１８】
0006006277.tif 000019
【図１９】
0006006277.tif 000020
【図２０】
0006006277.tif 000021