(57)【要約】 【課題】  ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができるロボット動作計画方法を提供する。【解決手段】  ステップＳ６では、１つ前の教示点Ｐｉ−１における姿勢Ｑｉ−１,ｋから教示点Ｐｉにおける姿勢Ｑｉ,jへの移動時間ｔｋ,jを求める。ステップＳ７では、退避点Ｐ０から姿勢Ｑｉ,jへの最新の最短移動時間ｆｉ,jが、退避点Ｐ０から姿勢Ｑｉ−１,ｋへの最短移動時間ｆｉ−１,ｋと移動時間ｔｋ,jとの和より大きいか否かを確認する。大きいときは、ステップＳ８に進み、大きくないときは、ステップＳ９に進む。ステップＳ８では、最短移動時間ｆｉ−１,ｋと移動時間ｔｋ,jとの和を、退避点Ｐ０から姿勢Ｑｉ,jへの新たな最短移動時間ｆｉ,jとし、姿勢番号ｋとともに記憶する。【選択図】      図３
2005352643.tif 000002
【特許請求の範囲】
【請求項１】
冗長軸を有するロボットに装着されたツールが複数の目標点間を移動する動作を計画するロボット動作計画方法において、
前記冗長軸に対して離散的な複数の冗長軸値を設定する冗長軸設定工程と、
１つの移動元目標点における前記冗長軸設定工程で設定された冗長軸値のうちの１つの移動元冗長軸値から、前記冗長軸設定工程で設定された移動先目標点における冗長軸値のうちの１つの移動先冗長軸値に変化するまでの移動時間を求める第１の時間算出工程と、
最初の目標点における初期冗長軸値から前記移動元冗長軸値に変化するまでの移動時間のうちで最小の移動時間を求める第２の時間算出工程と、
前記初期冗長軸値から前記移動先冗長軸値に変化するまでの移動時間を、前記移動元目標点における冗長軸値毎に、前記第１の時間算出工程で求めた移動時間と前記第２の時間算出工程で求めた移動時間との和として求める移動時間算出工程と、
各移動先目標点における前記冗長軸設定工程で設定された冗長軸値毎に、前記移動時間算出工程で求めた移動時間のうちで最小の移動時間を、前記初期冗長軸値から移動先冗長軸値に変化するまでの最短移動時間として求める最短移動時間算出工程と、
前記最短移動時間算出工程で最後に求めた移動先目標点における冗長軸値に対応する最短移動時間の中から、最小の最短移動時間を求め、求めた最小の最短移動時間に対応する経路を、最初の目標点から最後の目標点に移動する最短経路とする最短経路決定工程と、
前記最短経路決定工程で求めた最短経路に含まれる各目標点における冗長軸値に基づいて、各目標点におけるロボットの姿勢を決定する姿勢決定工程とを有することを特徴とするロボット動作計画方法。
【請求項２】
前記ロボット動作計画方法は、ロボットおよびツールが干渉するか否かを確認する干渉確認工程を有し、
前記干渉確認工程は、前記移動時間算出工程が移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間を求める毎に、ロボットおよびツールが干渉するか否かを確認し、確認結果が干渉することを示しているときは、前記移動時間算出工程で求めた移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間を無限大の時間に設定することを特徴とする請求項１記載のロボット動作計画方法。
【請求項３】
前記ロボット動作計画方法は、ロボットおよびツールが干渉するか否かを確認する干渉確認工程を有し、
前記干渉確認工程は、前記最短経路決定工程が最短経路を決定した後に、ロボットおよびツールが干渉するか否かを確認し、確認結果が干渉することを示しているときは、移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間のうちで、干渉を生じた移動時間を無限大の時間に設定し、
干渉を生じた移動元目標点における移動元冗長軸値以降の冗長軸値および目標点に対して、移動時間、最短移動時間、および最短経路を新たに求めことを特徴とする請求項１記載のロボット動作計画方法。
【請求項４】
前記冗長軸設定工程は、前記最短経路決定工程が最短経路を決定した後に、最短経路に含まれる各目標点における冗長軸値の近傍において変化させた冗長軸値を、各目標点における新たな冗長軸値として設定し、
前記ロボット動作計画方法は、前記冗長軸設定工程によって設定された新たな冗長軸値に対して、移動時間、最短移動時間、および最短経路を求めことを特徴とする請求項１〜３のいずれかに記載のロボット動作計画方法。
【請求項５】
前記冗長軸設定工程は、前記ロボットが有する複数の冗長軸に対して冗長軸値を設定するときは、各冗長軸の冗長軸値のすべての組合せを、各目標点における冗長軸値として設定することを特徴とする請求項１〜４のいずれかに記載のロボット動作計画方法。
【請求項６】
冗長軸を有するロボットに装着されたツールが複数の目標点間を移動する動作を計画するロボット動作計画装置において、
前記冗長軸に対して離散的な複数の冗長軸値を設定する冗長軸設定手段と、
１つの移動元目標点における前記冗長軸設定手段で設定された冗長軸値のうちの１つの移動元冗長軸値から、前記冗長軸設定手段で設定された移動先目標点における冗長軸値のうちの１つの移動先冗長軸値に変化するまでの移動時間を求める第１の時間算出手段と、
最初の目標点における初期冗長軸値から前記移動元冗長軸値に変化するまでの移動時間のうちで最小の移動時間を求める第２の時間算出手段と、
前記初期冗長軸値から前記移動先冗長軸値に変化するまでの移動時間を、前記移動元目標点における冗長軸値毎に、前記第１の時間算出手段で求めた移動時間と前記第２の時間算出手段で求めた移動時間との和として求める移動時間算出手段と、
各移動先目標点における前記冗長軸設定手段で設定された冗長軸値毎に、前記移動時間算出手段で求めた移動時間のうちで最小の移動時間を、前記初期冗長軸値から移動先冗長軸値に変化するまでの最短移動時間として求める最短移動時間算出手段と、
前記最短移動時間算出手段で最後に求めた移動先目標点における冗長軸値に対応する最短移動時間の中から、最小の最短移動時間を求め、求めた最小の最短移動時間に対応する経路を、最初の目標点から最後の目標点に移動する最短経路とする最短経路決定手段と、
前記最短経路決定手段で求めた最短経路に含まれる各目標点における冗長軸値に基づいて、各目標点におけるロボットの姿勢を決定する姿勢決定手段とを有することを特徴とするロボット動作計画装置。
【請求項７】
前記ロボット動作計画装置は、ロボットおよびツールが干渉するか否かを確認する干渉確認手段を有し、
前記干渉確認手段は、前記移動時間算出手段が移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間を求める毎に、ロボットおよびツールが干渉するか否かを確認し、確認結果が干渉することを示しているときは、前記移動時間算出手段で求めた移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間を無限大の時間に設定することを特徴とする請求項６記載のロボット動作計画装置。
【請求項８】
前記ロボット動作計画装置は、ロボットおよびツールが干渉するか否かを確認する干渉確認手段を有し、
前記干渉確認手段は、前記最短経路決定手段が最短経路を決定した後に、ロボットおよびツールが干渉するか否かを確認し、確認結果が干渉することを示しているときは、移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間のうちで、干渉を生じた移動時間を無限大の時間に設定し、
干渉を生じた移動元目標点における移動元冗長軸値以降の冗長軸値および目標点に対して、移動時間、最短移動時間、および最短経路を新たに求めことを特徴とする請求項６記載のロボット動作計画装置。
【請求項９】
前記冗長軸設定手段は、前記最短経路決定手段が最短経路を決定した後に、最短経路に含まれる各目標点における冗長軸値の近傍において変化させた冗長軸値を、各目標点における新たな冗長軸値として設定し、
前記ロボット動作計画装置は、前記冗長軸設定手段によって設定された新たな冗長軸値に対して、移動時間、最短移動時間、および最短経路を求めことを特徴とする請求項６〜８のいずれかに記載のロボット動作計画装置。
【請求項１０】
前記冗長軸設定手段は、前記ロボットが有する複数の冗長軸に対して冗長軸値を設定するときは、各冗長軸の冗長軸値のすべての組合せを、各目標点における冗長軸値として設定することを特徴とする請求項６〜９のいずれかに記載のロボット動作計画装置。
【請求項１１】
コンピュータに請求項１〜５に記載した工程を実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長軸を有するロボットに対してより最適化された動作計画を作成することができるロボット動作計画方法、ロボット動作計画装置、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
産業用ロボットは、スポット溶接、穴あけ、アーク溶接、レーザ加工など幅広い用途に用いられるロボットであり、たとえば、６軸多関節型ロボットのように基台、アーム、および手首を含んで構成されている。産業用ロボット（以下、ロボットという）に対する動作計画は、作業対象であるワークに対して作業を行う複数の教示点および各教示点におけるロボットの姿勢と位置を教示する教示作業によってロボットに設定されるが、昨今は、ティーチペンダントから教示するティーチングプレイバック、あるいは、実際のロボットを用いずに、コンピュータによるシミュレーションを利用して教示するオフラインティーチングが行われている。
【０００３】
冗長軸、すなわち、姿勢および位置の決め方に冗長性のある軸を有するロボットに装着されたツールが複数の教示点を通過して移動する際に、冗長軸の姿勢および位置が一意に決まっていないと、教示点間を移動する時間は、冗長軸の姿勢および位置によって変化する。ロボットの動作を設定する場合に、サイクルタイム、つまり、作業を開始してから、各教示点を通過して、すべての作業が終了するまでの時間を最小にする動作計画を自動的に作成する技術はなく、教示作業者が経験的により短いサイクルタイムになる冗長軸の姿勢および位置を教示している。
【０００４】
サイクルタイムを短縮化する従来技術として、まず、各教示点において、初期値として与えられた冗長軸の軸値、具体的には、冗長軸が回転する角度に対するサイクルタイムと、初期値から上方に微小な調整値だけ変化させた軸値に対するサイクルタイムと、初期値から下方に微小な調整値だけ変化させた軸値に対するサイクルタイムとを求め、求めた３つのサイクルタイムの中で最小のサイクルタイムである軸値を、その教示点での新たな軸値とする。次に、新たな軸値に対してさらに微小な調整値だけ変化させて、繰り返し最小のサイクルタイムを求めることによって、より短いサイクルタイムで動作する動作プログラムを自動的に作成する動作プログラムの最適化方法がある（たとえば、特許文献１参照）。
【０００５】
ＳＡ（Simulated Annealing）およびＧＡ（Generic Algorithm）などの手法は、解が初期値に依存するために最適値を見落としやすく、さらに、精度の高い最適値を求めるためには、計算時間が長くかかる。
【０００６】
【特許文献１】特開平９−１２８０２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術は、解が初期値に大きく依存するので、各教示点における冗長軸の軸値（冗長軸値）として、局所解を見つけてしまうことがあり、サイクルタイムが最適値とは程遠い値になっていることがあるという問題がある。
【０００８】
本発明の目的は、ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができるロボット動作計画方法、ロボット動作計画装置、プログラムおよび記録媒体を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、冗長軸を有するロボットに装着されたツールが複数の目標点間を移動する動作を計画するロボット動作計画方法において、
前記冗長軸に対して離散的な複数の冗長軸値を設定する冗長軸設定工程と、
１つの移動元目標点における前記冗長軸設定工程で設定された冗長軸値のうちの１つの移動元冗長軸値から、前記冗長軸設定工程で設定された移動先目標点における冗長軸値のうちの１つの移動先冗長軸値に変化するまでの移動時間を求める第１の時間算出工程と、
最初の目標点における初期冗長軸値から前記移動元冗長軸値に変化するまでの移動時間のうちで最小の移動時間を求める第２の時間算出工程と、
前記初期冗長軸値から前記移動先冗長軸値に変化するまでの移動時間を、前記移動元目標点における冗長軸値毎に、前記第１の時間算出工程で求めた移動時間と前記第２の時間算出工程で求めた移動時間との和として求める移動時間算出工程と、
各移動先目標点における前記冗長軸設定工程で設定された冗長軸値毎に、前記移動時間算出工程で求めた移動時間のうちで最小の移動時間を、前記初期冗長軸値から移動先冗長軸値に変化するまでの最短移動時間として求める最短移動時間算出工程と、
前記最短移動時間算出工程で最後に求めた移動先目標点における冗長軸値に対応する最短移動時間の中から、最小の最短移動時間を求め、求めた最小の最短移動時間に対応する経路を、最初の目標点から最後の目標点に移動する最短経路とする最短経路決定工程と、
前記最短経路決定工程で求めた最短経路に含まれる各目標点における冗長軸値に基づいて、各目標点におけるロボットの姿勢を決定する姿勢決定工程とを有することを特徴とするロボット動作計画方法である。
【００１０】
また本発明は、前記ロボット動作計画方法は、ロボットおよびツールが干渉するか否かを確認する干渉確認工程を有し、
前記干渉確認工程は、前記移動時間算出工程が移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間を求める毎に、ロボットおよびツールが干渉するか否かを確認し、確認結果が干渉することを示しているときは、前記移動時間算出工程で求めた移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間を無限大の時間に設定することを特徴とする。
【００１１】
また本発明は、前記ロボット動作計画方法は、ロボットおよびツールが干渉するか否かを確認する干渉確認工程を有し、
前記干渉確認工程は、前記最短経路決定工程が最短経路を決定した後に、ロボットおよびツールが干渉するか否かを確認し、確認結果が干渉することを示しているときは、移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間のうちで、干渉を生じた移動時間を無限大の時間に設定し、
干渉を生じた移動元目標点における移動元冗長軸値以降の冗長軸値および目標点に対して、移動時間、最短移動時間、および最短経路を新たに求めことを特徴とする。
【００１２】
また本発明は、前記冗長軸設定工程は、前記最短経路決定工程が最短経路を決定した後に、最短経路に含まれる各目標点における冗長軸値の近傍において変化させた冗長軸値を、各目標点における新たな冗長軸値として設定し、
前記ロボット動作計画方法は、前記冗長軸設定工程によって設定された新たな冗長軸値に対して、移動時間、最短移動時間、および最短経路を求めことを特徴とする。
【００１３】
また本発明は、前記冗長軸設定工程は、前記ロボットが有する複数の冗長軸に対して冗長軸値を設定するときは、各冗長軸の冗長軸値のすべての組合せを、各目標点における冗長軸値として設定することを特徴とする。
【００１４】
また本発明は、冗長軸を有するロボットに装着されたツールが複数の目標点間を移動する動作を計画するロボット動作計画装置において、
前記冗長軸に対して離散的な複数の冗長軸値を設定する冗長軸設定手段と、
１つの移動元目標点における前記冗長軸設定手段で設定された冗長軸値のうちの１つの移動元冗長軸値から、前記冗長軸設定手段で設定された移動先目標点における冗長軸値のうちの１つの移動先冗長軸値に変化するまでの移動時間を求める第１の時間算出手段と、
最初の目標点における初期冗長軸値から前記移動元冗長軸値に変化するまでの移動時間のうちで最小の移動時間を求める第２の時間算出手段と、
前記初期冗長軸値から前記移動先冗長軸値に変化するまでの移動時間を、前記移動元目標点における冗長軸値毎に、前記第１の時間算出手段で求めた移動時間と前記第２の時間算出手段で求めた移動時間との和として求める移動時間算出手段と、
各移動先目標点における前記冗長軸設定手段で設定された冗長軸値毎に、前記移動時間算出手段で求めた移動時間のうちで最小の移動時間を、前記初期冗長軸値から移動先冗長軸値に変化するまでの最短移動時間として求める最短移動時間算出手段と、
前記最短移動時間算出手段で最後に求めた移動先目標点における冗長軸値に対応する最短移動時間の中から、最小の最短移動時間を求め、求めた最小の最短移動時間に対応する経路を、最初の目標点から最後の目標点に移動する最短経路とする最短経路決定手段と、
前記最短経路決定手段で求めた最短経路に含まれる各目標点における冗長軸値に基づいて、各目標点におけるロボットの姿勢を決定する姿勢決定手段とを有することを特徴とするロボット動作計画装置である。
【００１５】
また本発明は、前記ロボット動作計画装置は、ロボットおよびツールが干渉するか否かを確認する干渉確認手段を有し、
前記干渉確認手段は、前記移動時間算出手段が移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間を求める毎に、ロボットおよびツールが干渉するか否かを確認し、確認結果が干渉することを示しているときは、前記移動時間算出手段で求めた移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間を無限大の時間に設定することを特徴とする。
【００１６】
また本発明は、前記ロボット動作計画装置は、ロボットおよびツールが干渉するか否かを確認する干渉確認手段を有し、
前記干渉確認手段は、前記最短経路決定手段が最短経路を決定した後に、ロボットおよびツールが干渉するか否かを確認し、確認結果が干渉することを示しているときは、移動元冗長軸値から移動先冗長軸値に変化するまでの移動時間のうちで、干渉を生じた移動時間を無限大の時間に設定し、
干渉を生じた移動元目標点における移動元冗長軸値以降の冗長軸値および目標点に対して、移動時間、最短移動時間、および最短経路を新たに求めことを特徴とする。
【００１７】
また本発明は、前記冗長軸設定手段は、前記最短経路決定手段が最短経路を決定した後に、最短経路に含まれる各目標点における冗長軸値の近傍において変化させた冗長軸値を、各目標点における新たな冗長軸値として設定し、
前記ロボット動作計画装置は、前記冗長軸設定手段によって設定された新たな冗長軸値に対して、移動時間、最短移動時間、および最短経路を求めことを特徴とする。
【００１８】
また本発明は、前記冗長軸設定手段は、前記ロボットが有する複数の冗長軸に対して冗長軸値を設定するときは、各冗長軸の冗長軸値のすべての組合せを、各目標点における冗長軸値として設定することを特徴とする。
【００１９】
また本発明は、コンピュータに前記工程を実行させるためのプログラムである。
また本発明は、前記プログラムを記録したコンピュータ読取り可能な記録媒体である。
【発明の効果】
【００２０】
本発明によれば、冗長軸を有するロボットに装着されたツールが複数の目標点間を移動する動作を計画するにあたって、まず、冗長軸設定工程で、前記冗長軸に対して離散的な複数の冗長軸値を設定し、第１の時間算出工程で、１つの移動元目標点における前記冗長軸設定工程で設定された冗長軸値のうちの１つの移動元冗長軸値から、前記冗長軸設定工程で設定された移動先目標点における冗長軸値のうちの１つの移動先冗長軸値に変化するまでの移動時間を求め、第２の時間算出工程で、最初の目標点における初期冗長軸値から前記移動元冗長軸値に変化するまでの移動時間のうちで最小の移動時間を求め、移動時間算出工程で、前記初期冗長軸値から前記移動先冗長軸値に変化するまでの移動時間を、前記移動元目標点における冗長軸値毎に、前記第１の時間算出工程で求めた移動時間と前記第２の時間算出工程で求めた移動時間との和として求める。
【００２１】
次に最短移動時間算出工程で、各移動先目標点における前記冗長軸設定工程で設定された冗長軸値毎に、前記移動時間算出工程で求めた移動時間のうちで最小の移動時間を、前記初期冗長軸値から移動先冗長軸値に変化するまでの最短移動時間として求める。次に最短経路決定工程で、前記最短移動時間算出工程で最後に求めた移動先目標点における冗長軸値に対応する最短移動時間の中から、最小の最短移動時間を求め、求めた最小の最短移動時間に対応する経路を、最初の目標点から最後の目標点に移動する最短経路とし、姿勢決定工程で、前記最短経路決定工程で求めた最短経路に含まれる各目標点における冗長軸値に基づいて、各目標点におけるロボットの姿勢を決定する。
【００２２】
このように、各教示点での冗長軸の冗長軸値を離散的に変化させて、各移動先教示点における各冗長軸値について、最初の教示点における冗長軸値から最短時間で移動できる移動元の冗長軸値を順次求めることによって、最後の移動先の教示点における冗長軸値に最短時間で移動できる各教示点における冗長軸値を求めることができるので、ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができ、初期値を設定する必要がないので、局所的な解ではなく全体の中での最適解に近い姿勢を求めることができる。
【００２３】
また本発明によれば、ロボットおよびツールが干渉するか否かを、教示点間の１つの移動時間を計算する毎に確認しているので、干渉のないほぼ最適な姿勢を求めることができ、ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができる。
【００２４】
また本発明によれば、ロボットおよびツールが干渉するか否かを、サイクルタイムがほぼ最短になる移動時間を求めた後に確認しているので、比較的短時間に干渉のないほぼ最適なロボットの姿勢を求め、ロボットのサイクルタイム短縮を図ることができ、さらに、ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができる。
【００２５】
また本発明によれば、一旦求めたほぼ最適な姿勢の近傍に新たに離散的な姿勢を設定して、より短い移動時間になる姿勢を求めているので、ロボットの移動時間がより短くなるロボットの姿勢を教示点毎に求めることができる。
【００２６】
また本発明によれば、冗長軸が複数ある場合には、複数の冗長軸の姿勢のすべての組合せを各教示点における姿勢として設定して、移動時間を求めているので、冗長軸が複数であっても、ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができる。
【００２７】
本発明によれば、冗長軸を有するロボットに装着されたツールが複数の目標点間を移動する動作を計画するにあたって、まず、冗長軸設定手段によって、前記冗長軸に対して離散的な複数の冗長軸値が設定され、第１の時間算出手段によって、１つの移動元目標点における前記冗長軸設定手段で設定された冗長軸値のうちの１つの移動元冗長軸値から、前記冗長軸設定手段で設定された移動先目標点における冗長軸値のうちの１つの移動先冗長軸値に変化するまでの移動時間が求められ、第２の時間算出手段によって、最初の目標点における初期冗長軸値から前記移動元冗長軸値に変化するまでの移動時間のうちで最小の移動時間が求められ、移動時間算出手段によって、前記初期冗長軸値から前記移動先冗長軸値に変化するまでの移動時間が、前記移動元目標点における冗長軸値毎に、前記第１の時間算出手段で求めた移動時間と前記第２の時間算出手段で求めた移動時間との和として求められる。
【００２８】
次に最短移動時間算出手段によって、各移動先目標点における前記冗長軸設定手段で設定された冗長軸値毎に、前記移動時間算出手段で求めた移動時間のうちで最小の移動時間が、前記初期冗長軸値から移動先冗長軸値に変化するまでの最短移動時間として求められる。次に最短経路決定手段によって、前記最短移動時間算出手段で最後に求めた移動先目標点における冗長軸値に対応する最短移動時間の中から、最小の最短移動時間が求められ、求められた最小の最短移動時間に対応する経路が、最初の目標点から最後の目標点に移動する最短経路とされ、姿勢決定手段によって、前記最短経路決定手段で求めた最短経路に含まれる各目標点における冗長軸値に基づいて、各目標点におけるロボットの姿勢が決定される。
【００２９】
このように、各教示点での冗長軸の冗長軸値を離散的に変化させて、各移動先教示点における各冗長軸値について、最初の教示点における冗長軸値から最短時間で移動できる移動元の冗長軸値を順次求めることによって、最後の移動先の教示点における冗長軸値に最短時間で移動できる各教示点における冗長軸値を求めることができるので、ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができ、初期値を設定する必要がないので、局所的な解ではなく全体の中での最適解に近い姿勢を求めることができる。
【００３０】
また本発明によれば、ロボットおよびツールが干渉するか否かを、教示点間の１つの移動時間を計算する毎に確認しているので、干渉のないほぼ最適な姿勢を求めることができ、ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができる。
【００３１】
また本発明によれば、ロボットおよびツールが干渉するか否かを、サイクルタイムがほぼ最短になる移動時間を求めた後に確認しているので、比較的短時間に干渉のないほぼ最適なロボットの姿勢を求め、ロボットのサイクルタイム短縮を図ることができ、さらに、ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができる。
【００３２】
また本発明によれば、一旦求めたほぼ最適な姿勢の近傍に新たに離散的な姿勢を設定して、より短い移動時間になる姿勢を求めているので、ロボットの移動時間がより短くなるロボットの姿勢を教示点毎に求めることができる。
【００３３】
また本発明によれば、冗長軸が複数ある場合には、複数の冗長軸の姿勢のすべての組合せを各教示点における姿勢として設定して、移動時間を求めているので、冗長軸が複数であっても、ロボットの移動時間がほぼ最短になるロボットの姿勢を教示点毎に求めることができる。
【００３４】
また本発明によれば、ロボットの移動時間をほぼ最短にできるロボット動作計画方法の工程をコンピュータに実行させるためのプログラムとして提供できる。
【００３５】
また本発明によれば、ロボットの移動時間をほぼ最短にできるロボット動作計画方法の工程をコンピュータに実行させるためのプログラムを記録したコンピュータで読取り可能な記録媒体として提供できる。
【００３６】
また本発明によれば、従来人手で行っていた動作計画の教示作業を自動化でき、人手による教示の手間を減らすことができる。あらゆる冗長軸を有するロボットに適用可能であり、穿孔およびスポット溶接などさまざまな用途に適用可能である。
【発明を実施するための最良の形態】
【００３７】
図１は、本発明の実施の一形態であるロボット動作計画方法によって作成されたロボット動作計画を適用するロボット１０の動作を説明するための概観図である。ロボット１０は、スポット溶接、穿孔、あるいは、ねじ止めなどの作業を行う産業用ロボットであり、たとえば、ロボット１０の基台１１が建物の天井に固定されている、いわゆる天つり型の６軸多関節型ロボットであり、作業対象であるワーク２０に対して、ねじ止め作業を行っているところを示している。
【００３８】
ロボット１０は、基台１１、第１アーム１２、第２アーム１３、第３アーム１４、第４アーム１５、第５アーム１６、および第６アーム（フランジ）１７を含んで構成され、第６アームにツール１８が装着される。第１アーム１２は基台１１によって決まる第１軸Ｊ１を中心軸として回転し、第２アーム１３は第１アーム１２によって決まる第２軸Ｊ２を中心軸として回転し、第３アーム１４は第２アーム１３によって決まる第３軸Ｊ３を中心軸として回転し、第４アーム１５は第３アーム１４によって決まる第４軸Ｊ４を中心軸として回転し、第５アーム１６は第４アーム１５によって決まる第５軸Ｊ５を中心軸として回転し、第６アーム１７は第５アーム１６によって決まる第６軸Ｊ６を中心軸として回転する。ツール１８は、第６アーム１７に固定して取り付けられており、軸Ｊｔは、ツール軸周りの軸である。
【００３９】
ロボット１０に装着されたツール１８の先端は、作業を行っていないときは、退避点Ｐ０に位置付いており、作業を開始すると、ツール１８は、ロボット動作計画によって指示されたｍ個の教示点（目標点）、つまり、教示点Ｐ１〜Ｐｍの各教示点を通過する際に、順次ねじ止め作業を行った後、退避点Ｐ０に戻る。教示点間の移動は、各軸補間によって、すなわち、教示点における各軸の位置から移動先の教示点の各軸の位置への移動を各軸毎に計算する点間制御によって行われる。
【００４０】
冗長自由度とは、ロボットの自由度と作業に必要な自由度との差で決まる自由度である。図１の場合、ロボット１０の自由度は、第１軸Ｊ１〜第６軸Ｊ６の６自由度であるのに対して、ツール軸Ｊｔ周りにはどの姿勢をとっても作業が可能であるので、作業に必要な自由度は５自由度であり、冗長自由度は１である。ロボット１０の部位の空間的位置を規定する因子、たとえば、ツール周りの回転量、あるいはロボット１０の１つの関節の軸値などについて、その因子と作業に必要な自由度分の情報が与えられたとき、演算によってロボット１０の姿勢が一意に決定される場合、その因子を冗長軸という。冗長軸は、その演算を簡単にできるように選べばよい。図１の場合、第１軸Ｊ１〜第６軸Ｊ６のどの可動軸でも冗長軸に選ぶことができるが、ツール周りの概念的な回転軸Ｊｔを選択すると演算が簡単になるので、この回転軸Ｊｔを冗長軸とする。ロボット１０の姿勢とは、第１アーム１２〜第６アーム１７、およびツール１８のそれぞれの姿勢の組合せで決まる姿勢である。
【００４１】
図２は、本発明の実施の一形態であるロボット動作計画方法によって作成されたロボット動作計画を適用する冗長軸の各教示点における姿勢間の移動を経路として示した図である。Ｐ１〜Ｐｍは、各教示点を示しており、冗長軸は、各教示点において、離散的に設定された冗長軸値の値をとる。Ｑ１,１〜Ｑｍ,ｎは、各教示点において離散的に設定された冗長軸値毎のロボットの姿勢を示しており、たとえば、姿勢Ｑ１,１〜Ｑ１,ｎは、教示点Ｐ１において冗長軸値を離散的に変化させたときの各冗長軸値に対応するロボットの姿勢を、それぞれ姿勢番号ｊ＝１〜ｎに対応付けて示している。この場合、冗長軸値、つまり、ツール１８周りの角度を１０度間隔で離散的に変えた３７個の姿勢があり、姿勢Ｑ１,１は冗長軸値の値が０度、姿勢Ｑ１,２は１０度、姿勢Ｑ１,３は２０度、および姿勢Ｑ１,ｎは３６０度であることを示している。
【００４２】
教示点Ｐ１には、３７個の姿勢があるので、退避点Ｐ０から教示点Ｐ１へは３７個の経路がある。教示点Ｐ１から教示点Ｐ２への経路については、教示点Ｐ１とＰ２にそれぞれ３７個の姿勢があるので、経路の数は、その組合せになり３７×３７＝１３６９個の経路がある。同様に、各教示点間の経路は、それぞれ１３６９個の経路がある。
【００４３】
サイクルタイム、すなわち、退避点Ｐ０から出発して、教示点Ｐ１〜Ｐｍを通過した後、退避点Ｐ０まで戻る時間は、各教示点における冗長軸の冗長軸値が変化すると、ロボットの姿勢も変化するので一意に決まらない。つまり、退避点Ｐ０から退避点Ｐ０までの各教示点Ｐ１〜Ｐｍにおいて、どの冗長軸値を通る経路であるかによって、サイクルタイムが変化し、この場合、太い矢印で示した経路が最小の移動時間の最短経路であることを示している。
【００４４】
図３は、本発明の実施の一形態であるロボット動作計画方法の手順を示すフローチャートであり、サイクルタイムが最短時間になる各教示点における冗長軸の姿勢を求めるためのロボットの動作計画を行うときにこの処理が開始される。以下の手順で処理が行われる前に、各教示点における離散的な冗長軸値を決定しておく。この冗長軸値によってロボットの姿勢が決まり、冗長軸の姿勢番号によって、冗長軸値が識別される。
【００４５】
ステップＳ１では、教示点Ｐ１から処理を行うために教示点番号ｉをｉ＝１と設定する。ステップＳ２では、冗長軸の各教示点における最初の姿勢から、姿勢チェックおよび隣り合う教示点間の移動時間の計算を行うために冗長軸の姿勢番号ｊをｊ＝１と設定する。
【００４６】
ステップＳ３では、移動先の教示点Ｐｉにおける冗長軸の姿勢番号がｊの場合のロボットの姿勢Ｑｉ,jを求める。ステップＳ４では、その姿勢Ｑｉ,jがとり得る姿勢であるか否かの確認、たとえば、ツール１８がワーク２０に届く姿勢であるか否かの確認を行う。とり得る姿勢のときは、ステップＳ５に進み、とり得ない姿勢のときは、その教示点におけるその姿勢番号の姿勢を、最短時間となる経路選択から除外してステップＳ１６に進む。
【００４７】
ステップＳ５では、移動元の教示点、つまり、１つ前の教示点Ｐｉ−１からの移動時間を求めるために、１つ前の教示点Ｐｉ−１における冗長軸の姿勢番号ｋをｋ＝１とする。ステップＳ６では、１つ前の教示点Ｐｉ−１における姿勢Ｑｉ−１,ｋから教示点Ｐｉにおける姿勢Ｑｉ,jへの移動時間ｔｋ,jを求める。各軸補間の場合は、この移動時間は、移動前の姿勢と移動後の姿勢のみを引数とする関数で表される。
【００４８】
ステップＳ７では、退避点Ｐ０から姿勢Ｑｉ,jへの最新の最短移動時間ｆｉ,jが、退避点Ｐ０から姿勢Ｑｉ−１,ｋへの最短移動時間ｆｉ−１,ｋと移動時間ｔｋ,jとの和より大きいか否かを確認する。大きいときは、ステップＳ８に進み、大きくないときは、ステップＳ９に進む。ｋ＝１の場合は、最短移動時間ｆｉ,ｊは、初期値になるので、退避点Ｐ０から姿勢Ｑｉ−１,１への最短移動時間ｆｉ−１,１と、姿勢Ｑｉ−１,１から姿勢Ｑｉ,jへの移動時間ｔ１,jとの和とする。ステップＳ８では、最短移動時間ｆｉ−１,ｋと移動時間ｔｋ,jとの和を、退避点Ｐ０から姿勢Ｑｉ,jへの新たな最短移動時間ｆｉ,jとし、姿勢番号ｋとともに記憶する。
【００４９】
ステップＳ９では、１つ前の教示点Ｐｉ−１に対する姿勢番号ｋについて、最後の姿勢番号ｎまでの移動時間の計算を完了したか否かを確認する。完了していないときは、ステップＳ１５に進み、完了したときは、ステップＳ１０に進む。ステップＳ１０では、教示点Ｐｉに対する姿勢番号ｊについて、最後の姿勢番号ｎまでの移動時間の計算を完了したか否かを確認する。完了していないときは、ステップＳ１６に進み、完了したときは、ステップＳ１１に進む。ステップＳ１１では、教示点Ｐｉの教示点番号ｉについて、最後の教示点番号ｍまでの移動時間の計算を完了したか否かを確認する。完了していないときは、ステップＳ１７に進み、完了したときは、ステップＳ１２に進む。ステップＳ１２では、各教示点について得られた姿勢番号ｋを順次たどることによって、全体の移動時間がほぼ最小になる最短経路を求める。
【００５０】
ステップＳ１３では、従来技術で行っている経路全体での干渉チェックシミュレーション、すなわち、移動中にロボット１０およびツール１８がワーク２０などの周囲の物体と接触しないか、ロボットの動作シミュレーションを実行する。ステップＳ１４では、干渉が発生しているか否かを確認し、干渉が発生していないときは、終了する。干渉が発生しているときは、たとえば、最初の干渉が教示点Ｐｃ−１とＰｃとの区間で発生しているときは、ステップＳ１８に進む。
【００５１】
ステップＳ１５では、１つ前の教示点Ｐｉ−１に対する姿勢番号ｋについて、次の姿勢番号の計算を行うために、姿勢番号ｋをｋ＝ｋ＋１と設定し、ステップＳ６に戻る。ステップＳ１６では、教示点Ｐｉに対する姿勢番号ｊについて、次の姿勢番号の計算を行うために、姿勢番号ｊをｊ＝ｊ＋１と設定し、ステップＳ３に戻る。ステップＳ１７では、次の教示点について計算するために、教示点番号ｉをｉ＝ｉ＋１と設定し、ステップＳ２に戻る。
【００５２】
ステップＳ１８では、干渉の発生した経路を、最短時間を求める対象の経路から除外するために、これ以降の計算では教示点Ｐｃ−１における姿勢番号ｉから教示点Ｐｃにおける姿勢番号ｊに至る時間ｔｉ,j＝∞として扱う。この場合、実際の計算は、たとえば、無限大に相当する値を時間ｔｉ,jに代入して計算するか、あるいは、特定の値を「∞」として取り扱うことと規定しておいて、時間ｔｉ,jにその特定の値を代入して計算することによって計算することができる。ステップＳ１９では、教示点Ｐｃからの計算をやり直すために、教示点番号ｉをｉ＝ｃと設定し、ステップＳ２に戻る。ステップＳ４での姿勢チェックにおいて、とり得ない姿勢の場合に、とり得ない姿勢を、最短時間となる経路選択から除外しているが、この場合も、その教示点の姿勢番号に至る最短移動時間を∞として扱うことによって除外することができる。
【００５３】
教示点番号ｉがｉ＝１の場合、Ｐｉ−１は、Ｐ０の退避点となり、この場合、冗長軸のとり得る姿勢は、１つであるので、姿勢番号ｋは、ｋ＝１についてのみ計算する。教示点Ｐｍまでの作業が終了すると、次に退避点Ｐ０に戻るが、この場合は、退避点Ｐ０をＰｍ＋１として扱い、この場合も、とり得る姿勢が１つであるので、姿勢番号ｊについて、ｊ＝１のみ計算する。
【００５４】
以上の処理によって、最短経路が決定され、この最短経路に含まれる各教示点における姿勢番号で決まる冗長軸値からロボットの姿勢が決まり、ロボットの動作計画が決定される。
【００５５】
上述した実施の形態では、干渉チェックシミュレーションを、すべての移動時間を計算して最短移動時間を求めた後で行っているが、１つ前の教示点Ｐｉ−１における姿勢Ｑｉ−１,ｋから教示点Ｐｉにおける姿勢Ｑｉ,jへの移動時間ｔｋ,jを求めるステップＳ６の処理を行う毎に、干渉チェックシミュレーションを行っても良い。この場合、干渉があると、求めた移動時間を∞の時間に設定することにより、ステップＳ７での判定が、大きくないという判定になり、ステップＳ８を実行することなく、ステップＳ９に進む。
【００５６】
干渉の発生しないことがわかっている場合には、ステップＳ１３とＳ１４の処理を省略してもよい。
【００５７】
作業上教示点における姿勢が制約されている場合は、たとえば、ワーク２０の形状によってツール１８とワーク２０が干渉することがある場合は、離散的な姿勢を可能な範囲の姿勢で変化させて、動作計画を行えばよい。
【００５８】
８自由度のロボットなど、軸数が６軸より多い多関節型ロボットにおいて、２軸以上の冗長軸がある場合、それらの冗長軸の姿勢の組合せを探索空間として、上述した実施の形態における冗長軸の探索空間である姿勢の数ｎに置き換えることによって、すなわち、それらの冗長軸の離散的な姿勢のすべての組合せを、各教示点において変化させた離散的な姿勢とすることによって、上述した実施の形態を用いて最短の移動時間を求めることができる。たとえば、１つの冗長軸の姿勢が３７個、他の冗長軸の姿勢が２０個とした場合、各教示点での姿勢は、それらの組合せの数である、３７×２０＝７４０個になり、動作計画では、各教示点における冗長軸の姿勢を７４０個として計算すればよい。
【００５９】
上述した実施の形態を用いて求めたロボットの動作計画は、冗長軸の姿勢を離散的な姿勢に対して求めているので、必ずしも最短のサイクルタイムになる動作計画を求められるとは限らない。この場合、冗長軸の姿勢を変化させる間隔を狭くすれば、より最適な解、つまり、より短い時間のサイクルタイムを求めることができる。
【００６０】
上述した実施の形態を用いて求めたロボットの動作計画に対して、各教示点での冗長軸の姿勢を、求めた姿勢の近傍で離散的に変化させて、その近傍で変化させた姿勢を新たな離散的な姿勢として、新たに動作計画を行うことによって、さらに短い移動時間を求めることができる。たとえば、動作計画によって、最短時間になる各教示点の姿勢、つまり、冗長軸の角度が、教示点Ｐ１で３０度、教示点Ｐ２で１２０度、教示点Ｐ３で１５０度、および教示点Ｐｍで２７０度として求まった場合、それぞれ前後に１度づつ変化させた姿勢、たとえば、教示点Ｐ１において２５度、２６度、２７度、・・・３５度の角度について、新たに動作計画を行うことによって、さらに短い移動時間を求めることができる。
【００６１】
図４は、本発明の実施の他の形態であるロボット動作計画装置３０の構成を説明するための図である。ロボット動作計画装置３０は、ロボット１０の動作計画をオフラインで行うための装置であり、演算処理部３１とシミュレータ３２を含んで構成される。
【００６２】
演算処理部３１は、与えられた教示点に対して、サイクルタイムが最短時間になる各教示点における冗長軸の姿勢を演算によって求める処理を行う部位である。シミュレータ３２は、演算処理部３１からの指示によって、指定された経路においてロボットの干渉、すなわち、ロボット１０およびツール１８がワーク２０と接触しないか、あるいは、ロボット１０がとり得ない姿勢になっていないかといったロボットの干渉チェックを、ロボットの動作シミュレーションによって行う部位であり、従来技術で行われている干渉チェックシミュレーションに相当する処理を行う。
【００６３】
ロボット動作計画装置３０は、演算処理部３１とシミュレータ３２の処理を行うプログラムをコンピュータに実行させることで実現可能である。この場合、演算処理部３１とシミュレータ３２は、上述した実施の一形態であるロボット動作計画方法の手順を実行するプログラムによって実現される。コンピュータは、種々の制御を行う図示していないＣＰＵ（Central Processing Unit）と、ＣＰＵで処理が行われるために用いられる図示していないメモリ、たとえば、ＲＯＭ（Read Only Memory）またはＲＡＭ（Random Access
Memory）とを含んで構成され、プログラムはＲＯＭに格納される。
【００６４】
演算処理部３１は、求めたロボットの動作計画を、ロボットプログラムとして、取り外し可能な記録媒体４０に出力する。取り外し可能な記録媒体４０に出力されたロボットプログラムは、ロボット１０を制御するロボットコントローラ５０に入力され、ロボットコントローラ５０は、入力されたロボットプログラムに従って、実際のロボットを動作させて、作業を行う。
【００６５】
演算処理部３１とシミュレータ３２の処理を行うプログラムは、コンピュータで読取り可能な記録媒体に格納されており、上述した実施の形態では、記録媒体として、ＲＯＭを用いたが、外部記憶装置としてプログラム読取装置が設けられ、そこに記録媒体を挿入することによって読取り可能となるような記録媒体であってもよい。
【００６６】
記録媒体に格納されているプログラムは、ＣＰＵがアクセスして実行可能な構成であればよい。あるいは、プログラムを読出し、読出したプログラムを図示されていないプログラム記録エリアにダウンロードして、プログラムを実行する構成であればよい。このダウンロード用のプログラムは、予めＲＯＭに格納しておく。
【００６７】
記録媒体がロボット動作計画装置３０と分離可能に構成される場合、記録媒体は、磁気テープ／カセットテープなどのテープ系、フレキシブルディスク／ハードディスクなどの磁気ディスクおよびＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）／ＭＯ（Magneto
Optical Disk）／ＭＤ（Mini Disk）／ＤＶＤ（Digital Versatile Disk）などの光ディスクのディスク系、ＩＣ（Integrated Circuit）カード（メモリカードを含む）／光カードなどのカード系、あるいは、マスクＲＯＭ／ＥＰＲＯＭ（Erasable Programmable Read
Only Memory）／フラッシュＲＯＭなどによる半導体メモリを含め、固定的にプログラムを担持する記録媒体であればよい。
【００６８】
表１は、本発明の実施の形態によって求めたロボットの動作計画を用いた作業のサイクルタイムの改善例を示す図である。６種類のスポット溶接作業Ａ〜Ｆについて、人手による教示によって求めた動作計画に基づいて実施したときのサイクルタイムと、本発明の実施の形態によって求めた動作計画に基づいて実施したときのサイクルタイムとを比較したものである。
【００６９】
それぞれのサイクルタイムは、作業Ａについて６７．４９秒と６１．４３秒、作業Ｂについて１１７．４７秒と１０９．５３秒、作業Ｃについて９８．８２秒と６７．９６秒、作業Ｄについて８４．２５秒と８０．２６秒、作業Ｅについて８２．６２秒と７１．７８秒、作業Ｆについて９４．７９秒と７８．９４秒であり、本発明の実施の形態によって求めた動作計画のサイクルタイムの方が、約５〜３０％改善されている。
【００７０】
【表１】
2005352643.tif 000003
【００７１】
表２は、本発明の実施の形態によって求めるロボットの動作計画の計算時間を方法毎に比較した図である。ロボットの動作計画を作成するのに要する時間について、Ｎｏ．１〜３の３種類の方法毎に、理論上の計算式と概算の計算時間を示したものである。Ｎｏ．１〜３の方法の違いは、干渉チェックシミュレーションを行う時点と経路が異なる。一般に、干渉チェックシミュレーションを行う時間は、移動時間の計算時間に比べると多大の時間を要するので、どの時点でどの経路に対して干渉チェックシミュレーションを行うかによって、全体の計算時間が大幅に異なる。
【００７２】
Ｎｏ．１の方法は、すべての組合せの経路について干渉チェックシミュレーションを行う方法であり、教示点の数をｍ、冗長軸の姿勢の数をｎ、教示点間を移動する時間を求める計算時間をｔ、教示点間の干渉チェックシミュレーションを行う計算時間をＴとすると、経路のすべての組合せは、ｎｍとなるので、理論上の計算時間は、ｎｍ（ｔ＋Ｔ）となる。
【００７３】
Ｎｏ．２の方法は、教示点間の１つの移動時間を計算する毎に干渉チェックシミュレーションを行う方法であり、教示点間での計算回数が、ｎ２回であるので、理論上の計算時間は、ｎ２ｍ（ｔ＋Ｔ）となる。Ｎｏ．３の方法は、最短のサイクルタイムを求めた後で、最短時間の経路についてのみ干渉チェックシミュレーションを行う方法であり、この場合、移動時間の計算回数がｍｎ２回、干渉チェックシミュレーションの計算回数が最短時間の経路のみについて行うのでｍ回であり、さらに、干渉が発生したことによる再計算があるので、理論上の計算時間は、およそ２ｍ（ｎ２ｔ＋Ｔ）になる。この場合、干渉の発生は、確率ｐ＝１／２の幾何分布に従い、発生箇所は、一様分布とする。
【００７４】
たとえば、教示点の数ｍ＝２０、冗長軸の姿勢の数ｎ＝３０、教示点間を移動する時間を求める計算時間ｔ＝１ｍｓｅｃ、教示点間の干渉チェックシミュレーションを行う計算時間Ｔ＝１００ｍｓｅｃとすると、Ｎｏ．１の概算の計算時間は、３．５×１０２８秒、Ｎｏ．２の概算の計算時間は、１８００秒（３０分）、Ｎｏ．３の概算の計算時間は、４０秒となり、最短のサイクルタイムを求めた後で干渉チェックシミュレーションを行うＮｏ．３の方法の場合、１分以内に動作計画を作成することができる。
【００７５】
【表２】
2005352643.tif 000004
【図面の簡単な説明】
【００７６】
【図１】本発明の実施の一形態であるロボット動作計画方法によって作成されたロボット動作計画を適用するロボット１０の動作を説明するための概観図である。
【図２】本発明の実施の一形態であるロボット動作計画方法によって作成されたロボット動作計画を適用する冗長軸の各教示点における姿勢間の移動を経路として示した図である。
【図３】本発明の実施の一形態であるロボット動作計画方法の手順を示すフローチャートである。
【図４】本発明の実施の他の形態であるロボット動作計画装置３０の構成を説明するための図である。
【符号の説明】
【００７７】
１０  ロボット
１１  基台
１２  第１アーム
１３  第２アーム
１４  第３アーム
１５  第４アーム
１６  第５アーム
１７  第６アーム
１８  ツール
２０  ワーク
３０  ロボット動作計画装置
３１  演算処理部
３２  シミュレータ
４０  記録媒体
５０  ロボットコントローラ
【図１】
2005352643.tif 000005
【図２】
2005352643.tif 000006
【図３】
2005352643.tif 000007
【図４】
2005352643.tif 000008