(57)【特許請求の範囲】
【請求項１】
動作プログラム実行中に、ロボットの静止状態から移動を開始させて次の静止状態にさせるまでの動作を行わせる一連の動作命令を読み込み、各動作命令に対し加減速フィルタ処理を行い、ステップ状の速度指令を加速部及び減速部を含む速度指令に変換し、前記変換された速度指令を順次出力することにより前記一連の動作命令による動作を実行するロボットの移動制御方法であって、
前記一連の動作命令のうちの１回目の動作命令について、前記動作プログラムに基づいて移動距離、指令速度初期値及び移動時間初期値を含むステップ状の速度指令を作成するステップと、
所定のアルゴリズムに基づいて前記１回目の動作命令について時定数初期値を最終的時定数として求めるステップと、
前記一連の動作命令のうちの２回目以降の動作命令について、
前記動作プログラムに基づいて、移動距離、指令速度初期値及び移動時間初期値を含むステップ状の速度指令を作成するステップと、
所定のアルゴリズムに基づいて前記２回目以降の動作命令について時定数初期値を求めるステップと、
前記時定数初期値が前回の動作命令における最終的な時定数よりも短い場合に、前記前回の動作命令における最終的な時定数を今回の動作の最終的時定数とするクランプ処理を行うステップと、
前回の動作命令におけるサイクルタイムと今回の動作命令におけるクランプ処理後のサイクルタイムとを比較し、今回の動作命令におけるクランプ処理後のサイクルタイムが前回の動作命令におけるサイクルタイム以下の場合には、今回の動作における時定数初期値、移動時間初期値及び指令速度初期値をそれぞれ最終的な時定数、移動時間及び指令速度として採用するとともに、前記最終的な時定数を次の動作の時定数の下限値とするステップと、
前回の動作命令におけるサイクルタイムと今回の動作命令におけるクランプ処理後のサイクルタイムとを比較し、今回の動作命令におけるクランプ処理後のサイクルタイムが前回の動作命令におけるサイクルタイムより長い場合には、前記移動時間初期値、前記時定数初期値及び前記最終的な時定数に基づいて最終的な移動時間を再計算し、さらに、該最終的な移動時間及び前記移動距離に基づいて最終的な指令速度を再計算するステップと、
前記最終的な指令速度、前記最終的な時定数及び前記最終的な移動時間に基づいて加減速フィルタ処理を実行するステップと、
前記フィルタ処理の出力をモータ制御に使用するステップと、
を有することを特徴とするロボットの移動制御方法。
【請求項２】
前記ステップ状の速度指令に加減速フィルタ処理を施して時定数初期値を求めるステップと、前記前回の動作命令における最終的な時定数を今回の動作の最終的時定数とするステップとの間に、
前記移動時間初期値と前記時定数初期値とを比較し、前記移動時間初期値が前記時定数初期値より短い場合に、今回の動作命令を加減速のみの移動動作を行うように変換するステップをさらに有する、請求項１に記載のロボットの移動制御方法。
【請求項３】
各動作命令に対して複数の種類の加減速フィルタを用いた加減速フィルタ処理を行い、サイクルタイムが最小になる処理結果をモータ制御に使用するステップをさらに有する、請求項１又は２に記載のロボットの移動制御方法。
【請求項４】
前記加減速フィルタ処理が、直列接続された複数の加減速フィルタ処理からなり、少なくとも１つの加減速フィルタ処理の時定数が前回の動作命令の最終的時定数より短い場合に該前回の動作命令の時定数を今回の最終的時定数として採用するステップをさらに有する、請求項１〜３のいずれか１項に記載のロボットの移動制御方法。
【請求項５】
動作プログラム実行中に、ロボットの静止状態から移動を開始させて次の静止状態にさせるまでの動作を行わせる一連の動作命令を読み込み、各動作命令に対し加減速フィルタ処理を行い、ステップ状の速度指令を加速部及び減速部を含む速度指令に変換し、前記変換された速度指令を順次出力することにより前記一連の動作命令による動作を実行するロボットの移動制御装置であって、
前記動作プログラムに基づいて移動距離、指令速度初期値及び移動時間初期値を含むステップ状の速度指令を作成する補間部と、
所定のアルゴリズムに基づいて前記１回目の動作命令について時定数初期値を最終的時定数として求めるとともに、前記一連の動作命令のうちの２回目以降の動作命令について所定のアルゴリズムに基づいて前記２回目以降の動作命令について時定数初期値を求める時定数計算部と、
前記時定数初期値が前回の動作命令における最終的な時定数よりも短い場合に、前記前回の動作命令における最終的な時定数を今回の動作の最終的時定数とするクランプ処理を行う時定数クランプ部と、
今回の動作命令におけるクランプ処理後のサイクルタイムが前回の動作命令におけるサイクルタイムより長い場合に、前記移動時間初期値、前記時定数初期値及び前記最終的な時定数に基づいて最終的な移動時間を再計算する移動時間再計算部と、
今回の動作命令におけるクランプ処理後のサイクルタイムが前回の動作命令におけるサイクルタイムより長い場合に、前記移動時間再計算部が計算した最終的な移動時間及び前記移動距離に基づいて最終的な指令速度を再計算する指令速度再計算部と、
前記最終的な指令速度、前記最終的な時定数及び前記最終的な移動時間に基づいて加減速フィルタ処理を実行する移動平均フィルタと、
前記移動平均フィルタによる加減速フィルタ処理の出力をモータ制御に使用するモータ制御部と、
を有することを特徴とするロボットの移動制御装置。
【請求項６】
前記移動時間初期値と前記時定数初期値とを比較し、前記移動時間初期値が前記時定数初期値より短い場合に、今回の動作命令を加減速のみの移動動作を行うように変換するパス命令処理部をさらに有する、請求項１に記載のロボットの移動制御装置。
【請求項７】
各動作命令に対してそれぞれ加減速フィルタ処理を行う複数の種類の加減速フィルタを有する、請求項５又は６に記載のロボットの移動制御装置。
【請求項８】
直列接続された複数の加減速フィルタを有する、請求項５〜７のいずれか１項に記載のロボットの移動制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用ロボット（以下、単にロボットと称する）の移動制御装置及び移動制御方法に関する。
【背景技術】
【０００２】
ロボットの動作時間すなわちサイクルタイムを短縮するための技術としては種々のものが提案されている。例えば特許文献１には、サーボモータの加減速時定数をブロック毎に最適値に決定しながらロボットの動作を制御するロボットの加減速時定数制御方式において、ブロックの移動量から到達速度を求め、前記到達速度からサーボモータの出力トルクを求め、前記出力トルクから静負荷トルクを減じて加速トルクと減速トルクを求め、前記加速トルクと前記減速トルクおよび前記サーボモータの現在位置と目標位置の負荷イナーシャから、加速時と減速時の加速度を求め、前記加速時と前記減速時の前記加速度から加速時定数と減速時定数を個別に決定する加減速時定数制御方式が開示されている。
【０００３】
また特許文献２には、多関節型ロボットの手先を目標位置まで移動したときの各関節の位置を目標値とし、該目標値となるように各関節を駆動することにより多自由度を有する多関節型ロボットの駆動を制御する方法において、各関節ごとに各関節の動作時間を設定し、各関節の動作終了時間が重ならないように動作プログラムを作成し、該動作プログラムに基づいて各関節を駆動する駆動制御方法が開示されている。
【０００４】
さらに特許文献３には、最高速度を下げた方が動作時間が短くなる場合に、各軸の駆動トルクもしくは作用トルクの許容最大値をもとに、前記各軸の最高速度を調整し、動作時間を短縮することを目的としたロボット制御装置が開示されている。
【０００５】
図１は、従来の移動制御を行うためのロボット制御装置１００のブロック図である。制御装置１００は、教示されたプログラム内の動作文の始点位置、終点位置、指令速度及び補間形式等を記憶する不揮発性メモリ等のプログラム記憶部１０２と、ロボット機構部の質量、重心位置及び重心回りのイナーシャ等のパラメータを記憶するパラメータ記憶部１０４とを有する。
【０００６】
また制御装置１００は補間部１０６及びモータ制御部１０８を有し、補間部１０６は、プログラムの再生時に、プログラム内の動作文の始点位置、終点位置、移動速度及び補間形式等の情報に基づいて、補間周期毎の速度指令を作成する。これは通常、ステップ状の速度指令であり、これをそのままモータ制御部１０８への指令にするとロボット機構部が大きく振動することがある。そこでこれを防ぐために、補間部１０６とモータ制御部１０８との間には移動平均フィルタ等のフィルタ１１０が設けられる。
【０００７】
また制御装置１００は、ロボット機構部１５０の現在の位置姿勢においてロボット各軸のモータからみたイナーシャを計算するイナーシャ計算部１１２と、パラメータ記憶部１０４の記憶内容及びイナーシャ計算部１１２で求められたイナーシャに基づいて時定数を計算する時定数計算部１１４とを有し、時定数計算部１１４で求められた時定数をフィルタ１１０に通すことで、滑らかな速度指令が得られる。
【０００８】
図２は、図１のような構成の移動制御装置による処理を説明する図である。先ず図２（ａ）に示すように、ある動作における開始位置及び終了位置から移動距離Ｌ（四角形の面積）が決まり、移動距離Ｌを指令速度Ｖ0で割ることにより移動時間初期値Ｍ0が求められる。但し実際に図２（ａ）のようなステップ状の速度指令を行うとロボット機構部が大きく振動することがあるので、図２（ｂ）のように加速域及び減速域を設定する処理を行う。先ず、現在の位置姿勢で各軸のモータから見たイナーシャを計算し、モータが出力可能な最大トルクをイナーシャで割ることにより、加速度ａを求める。指令速度初期値Ｖ0をこの加速度ａで割ることにより、時定数初期値Ｆ0が求められる。傾向として、イナーシャが大きい位置姿勢では加速度ａが小さくなるので時定数は長くなり、移動時間初期値Ｍ0と時定数Ｆ0の合計であるサイクルタイムＴも長くなる。
【０００９】
また、イナーシャが小さく加速度を大きくできる位置姿勢であっても、図３（ａ）に示すように指令速度Ｖ0に対して移動距離Ｌが比較的短い場合に上述の加速域及び減速域を設定する処理を行うと、図３（ｂ）に示すように、移動時間初期値Ｍ0内にロボットの速度が指令速度Ｖ0に達しない動作パターンが作成される。すなわち、図３の場合では、移動時間Ｍ0の間加速度ａにて加速を行い、Ｖ0より小さい速度にてある時間定速移動をした後に減速する動作となる。
【００１０】
【特許文献１】特開平６−３３７７０８号公報
【特許文献２】特開平７−２９５６１５号公報
【特許文献３】特開平１１−２５９１０８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
図３（ｂ）のように移動時間初期値Ｍ0が時定数初期値Ｆ0より短い場合、移動平均フィルタ１１０が出力する指令速度は指令速度初期値Ｖ0に達しない。このような場合は、図３（ｃ）のように加減速のみの動作を行う方がサイクルタイムは短くなる。図３（ｃ）の場合、加速度ａ（＝Ｖ0／Ｆ0）を変えずに到達できる最大速度Ｖsは以下の式（１）で表される。
Ｖs＝Ｖ0・（Ｍ0／Ｆ0）1/2                                  （１）
【００１２】
上記指令速度Ｖs及び移動距離Ｌを用いた次式（２）により、新たな移動時間Ｍsが求められる。なおこのときの時定数ＦsがＭsに等しいことは明らかである。
Ｍs＝Ｌ／Ｖs                                              （２）
【００１３】
上述の図３（ｃ）のように加減速のみの動作を行うかの判断方法としては、教示作業者がプログラム作成時に任意の動作に加減速のみの動作を指定する命令（以下、パス命令と称する）を付加する方法、加速度ａと移動時間初期値Ｍ0との積が指令速度Ｖ0未満ならば自動的にパス命令を付加する方法、或いは教示速度を自動的若しくは作業者が手動で上記速度Ｖsに変更する方法が考えられる。
【００１４】
ここで、一般的にロボットの動作は、図２又は図３に示すような個々の動作を逐次的に行うことで一連の動作を行うように制御される。個々の動作については上述のように、各動作における開始位置、終了位置及び速度指令等に基づいてそのサイクルタイム（具体的には上述の移動時間及び時定数の和）を最小化する制御が行われる。しかし一連の動作の動作時間を短縮し、或いはロボットの動きを滑らかにするために、個々の動作は、前の動作が完全に終了する前に次の動作を開始する場合が多い。このような場合には、前の動作が終了する前に次の動作が終了し、ロボットの動作が作業者が意図する動作と異なってしまうことを防止するために、次の動作の時定数の最小値に、前の動作の動作条件に応じた下限値を設定する処理（いわゆるクランプ処理）を行うことがある。
【００１５】
具体的なクランプ処理では、今回の動作における時定数が前の動作の時定数より短い場合は、今回の動作でも前の動作の時定数を使用する。すなわち、ある回の動作の時定数を、次回の動作の時定数の下限値Ｆtとする。一方、今回の時定数が前回の時定数より長い場合は、今回の時定数が次回の時定数の下限値Ｆtとなる。なお、連続しない単発の動作や、連続した動作のうちの最初の動作では、クランプ処理を行う必要はない。また、移動時間初期値と時定数とが異なる図２（ｂ）や図３（ｂ）のような場合もクランプ処理は必要である。
【００１６】
例えば図４は、図３（ｂ）の動作パターンにクランプ処理を施した例を示す。この場合は前回の時定数Ｆcが今回の時定数Ｆ0より長いので、図４（ｂ）のように、時定数がクランプされ（時定数の下限値がＦcに設定され）、到達速度がＶ0より相当に低いＶsに制限される。その結果、全体としてサイクルタイムの長い動作となっている。また図５は、図３（ｃ）の動作パターンにクランプ処理を施した例を示す。この場合は時定数Ｆsが前回の時定数Ｆcに変更され、それに伴って移動時間もＭ0からＭcに延び、図５（ｂ）のように、全体としてサイクルタイムの長い動作となっている。
【００１７】
図４及び図５の場合はいずれも、クランプ処理によってサイクルタイムが長くなる。この場合、上述のパス命令を付加しない方が全体のサイクルタイムが短くなることがあるが、その場合作業者が個々の動作についてパス命令を付加するか否かを判断してプログラムを作成しなければならない。また実際の現場では、指令速度を試行錯誤により決定して、サイクルタイムを短くしていることが多いが、この作業はかなり面倒である。
【００１８】
そこで本発明は、面倒な試行錯誤をせずにロボットのサイクルタイムを効率的に短くすることができるロボットの移動制御装置及び移動制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、請求項１に記載の発明は、動作プログラム実行中に、ロボットの静止状態から移動を開始させて次の静止状態にさせるまでの動作を行わせる一連の動作命令を読み込み、各動作命令に対し加減速フィルタ処理を行い、ステップ状の速度指令を加速部及び減速部を含む速度指令に変換し、前記変換された速度指令を順次出力することにより前記一連の動作命令による動作を実行するロボットの移動制御方法であって、前記一連の動作命令のうちの１回目の動作命令について、前記動作プログラムに基づいて移動距離、指令速度初期値及び移動時間初期値を含むステップ状の速度指令を作成するステップと、所定のアルゴリズムに基づいて前記１回目の動作命令について時定数初期値を最終的時定数として求めるステップと、前記一連の動作命令のうちの２回目以降の動作命令について、前記動作プログラムに基づいて、移動距離、指令速度初期値及び移動時間初期値を含むステップ状の速度指令を作成するステップと、所定のアルゴリズムに基づいて前記２回目以降の動作命令について時定数初期値を求めるステップと、前記時定数初期値が前回の動作命令における最終的な時定数よりも短い場合に、前記前回の動作命令における最終的な時定数を今回の動作の最終的時定数とするクランプ処理を行うステップと、前回の動作命令におけるサイクルタイムと今回の動作命令におけるクランプ処理後のサイクルタイムとを比較し、今回の動作命令におけるクランプ処理後のサイクルタイムが前回の動作命令におけるサイクルタイム以下の場合には、今回の動作における時定数初期値、移動時間初期値及び指令速度初期値をそれぞれ最終的な時定数、移動時間及び指令速度として採用するとともに、前記最終的な時定数を次の動作の時定数の下限値とするステップと、前回の動作命令におけるサイクルタイムと今回の動作命令におけるクランプ処理後のサイクルタイムとを比較し、今回の動作命令におけるクランプ処理後のサイクルタイムが前回の動作命令におけるサイクルタイムより長い場合には、前記移動時間初期値、前記時定数初期値及び前記最終的な時定数に基づいて最終的な移動時間を再計算し、さらに、該最終的な移動時間及び前記移動距離に基づいて最終的な指令速度を再計算するステップと、前記最終的な指令速度、前記最終的な時定数及び前記最終的な移動時間に基づいて加減速フィルタ処理を実行するステップと、前記フィルタ処理の出力をモータ制御に使用するステップと、を有することを特徴とするロボットの移動制御方法を提供する。
【００２０】
請求項２に記載の発明は、請求項１に記載のロボットの移動制御方法において、前記ステップ状の速度指令に加減速フィルタ処理を施して時定数初期値を求めるステップと、前記前回の動作命令における最終的な時定数を今回の動作の最終的時定数とするステップとの間に、前記移動時間初期値と前記時定数初期値とを比較し、前記移動時間初期値が前記時定数初期値より短い場合に、今回の動作命令を加減速のみの移動動作を行うように変換するステップをさらに有する、ロボットの移動制御方法を提供する。
【００２１】
請求項３に記載の発明は、請求項１又は２に記載のロボットの移動制御方法において、各動作命令に対して複数の種類の加減速フィルタを用いた加減速フィルタ処理を行い、サイクルタイムが最小になる処理結果をモータ制御に使用するステップをさらに有する、ロボットの移動制御方法を提供する。
【００２２】
請求項４に記載の発明は、請求項１〜３のいずれか１項に記載のロボットの移動制御方法において、前記加減速フィルタ処理が、直列接続された複数の加減速フィルタ処理からなり、少なくとも１つの加減速フィルタ処理の時定数が前回の動作命令の最終的時定数より短い場合に該前回の動作命令の時定数を今回の最終的時定数として採用するステップをさらに有する、ロボットの移動制御方法を提供する。
【００２３】
請求項５に記載の発明は、動作プログラム実行中に、ロボットの静止状態から移動を開始させて次の静止状態にさせるまでの動作を行わせる一連の動作命令を読み込み、各動作命令に対し加減速フィルタ処理を行い、ステップ状の速度指令を加速部及び減速部を含む速度指令に変換し、前記変換された速度指令を順次出力することにより前記一連の動作命令による動作を実行するロボットの移動制御装置であって、前記動作プログラムに基づいて移動距離、指令速度初期値及び移動時間初期値を含むステップ状の速度指令を作成する補間部と、所定のアルゴリズムに基づいて前記１回目の動作命令について時定数初期値を最終的時定数として求めるとともに、前記一連の動作命令のうちの２回目以降の動作命令について所定のアルゴリズムに基づいて前記２回目以降の動作命令について時定数初期値を求める時定数計算部と、前記時定数初期値が前回の動作命令における最終的な時定数よりも短い場合に、前記前回の動作命令における最終的な時定数を今回の動作の最終的時定数とするクランプ処理を行う時定数クランプ部と、今回の動作命令におけるクランプ処理後のサイクルタイムが前回の動作命令におけるサイクルタイムより長い場合に、前記移動時間初期値、前記時定数初期値及び前記最終的な時定数に基づいて最終的な移動時間を再計算する移動時間再計算部と、今回の動作命令におけるクランプ処理後のサイクルタイムが前回の動作命令におけるサイクルタイムより長い場合に、前記移動時間再計算部が計算した最終的な移動時間及び前記移動距離に基づいて最終的な指令速度を再計算する指令速度再計算部と、
前記最終的な指令速度、前記最終的な時定数及び前記最終的な移動時間に基づいて加減速フィルタ処理を実行する移動平均フィルタと、前記移動平均フィルタによる加減速フィルタ処理の出力をモータ制御に使用するモータ制御部と、を有することを特徴とするロボットの移動制御装置を提供する。
【００２４】
請求項６に記載の発明は、請求項５に記載のロボットの移動制御装置において、前記移動時間初期値と前記時定数初期値とを比較し、前記移動時間初期値が前記時定数初期値より短い場合に、今回の動作命令を加減速のみの移動動作を行うように変換するパス命令処理部をさらに有する、ロボットの移動制御方法を提供する。
【００２５】
請求項７に記載の発明は、請求項５又は６に記載のロボットの移動制御装置において、各動作命令に対してそれぞれ加減速フィルタ処理を行う複数の種類の加減速フィルタを有する、ロボットの移動制御方法を提供する。
【００２６】
請求項８に記載の発明は、請求項５〜７のいずれか１項に記載のロボットの移動制御装置において、直列接続された複数の加減速フィルタを有する、ロボットの移動制御方法を提供する。
【発明の効果】
【００２７】
本発明に係るロボットの移動制御方法又は移動制御装置によれば、ロボットの一連の動作において前回の動作の加減速時定数の引きずりによってサイクルタイムが長くなることを防ぐことができ、これにより試行錯誤をしなくてもサイクルタイムを短くすることができる。
【００２８】
移動時間初期値が時定数初期値より短い場合には今回の動作命令を加減速のみの移動動作を行うように変換することにより、さらなるサイクルタイムの短縮が図られる。
【００２９】
各動作命令に対して複数の種類の加減速フィルタを用いた加減速フィルタ処理を行うことにより、複数の処理結果の中からサイクルタイムが最小になる処理結果を選定することができ、さらなるサイクルタイムの短縮化が図られる。
【００３０】
直列接続された複数の加減速フィルタを用いてフィルタ処理を行うことにより、少なくとも１つの加減速フィルタ処理の時定数が前回の動作命令の最終的時定数より短い場合に該前回の動作命令の時定数を今回の最終的時定数とすることができ、これによりある回の動作が終了する前にその次の回の動作が終了することが確実に防止される。
【発明を実施するための最良の形態】
【００３１】
図６は、本発明に係る、ロボットの移動制御を行うための移動制御装置１０のブロック図である。制御装置１０は、ロボットの動作プログラム実行中に、ロボットの静止状態から移動を開始させて次の静止状態にさせるまでの動作を行わせる一連の動作命令を読み込み、各動作命令に対し加減速フィルタ処理を行い、矩形状の速度指令を加速域及び減速域を含む速度指令に変換し、該変換された速度指令を順次出力することにより上記一連の動作命令による動作をロボットに実行させるものである。具体的には制御装置１０は、教示されたプログラム内の動作文の始点位置、終点位置、指令速度及び補間形式等を記憶する不揮発性メモリ等のプログラム記憶部１２と、ロボット機構部の質量、重心位置及び重心回りのイナーシャ等のパラメータを記憶するパラメータ記憶部１４とを有する。
【００３２】
また制御装置１０は、プログラムの再生時に、プログラム内の動作文の始点位置、終点位置、移動速度及び補間形式等の情報に基づいて、補間周期毎の速度指令を作成する補間部１６と、ロボット機構部５０の各軸モータに移動指令を送るモータ制御部１８とを有する。さらに制御装置１０は、ロボット機構部５０の現在の位置姿勢においてロボット各軸のモータからみたイナーシャを計算するイナーシャ計算部２２と、パラメータ記憶部１４の記憶内容及びイナーシャ計算部２２で求められたイナーシャに基づいて時定数初期値を計算する時定数計算部２４とを有する。時定数初期値を求めるアルゴリズムとしては種々のものが考えられるが、ここでは、モータが出力可能な最大トルクをイナーシャで割ることにより加速度を求め、指令速度初期値をこの加速度で割ることにより時定数初期値が得られるものとする。
【００３３】
以上の構成要素については制御装置１００のものと同様でもよい。本発明に係る制御装置１０はさらに、パス命令処理部２６、移動時間再計算部２８、指令速度再計算部３０、時定数クランプ部３２、第１移動平均フィルタ３４及び第２移動平均フィルタ３６を有する。以降、各要素の作用について図７〜図１０を参照しつつ説明する。
【００３４】
図７は、移動制御装置１０を用いたロボット移動制御方法の処理の一例を示すフローチャートである。先ずステップＳ１において、時定数計算部２４が、パラメータ記憶部１４から読み込んだロボット機構部５０のパラメータと、イナーシャ計算部２２がロボット機構部５０の現在の位置姿勢から求めたモータ回りのイナーシャとから、そのイナーシャに適した時定数初期値Ｆ0を計算する。
【００３５】
次にステップＳ２において、パス命令処理部２６が、補間部１６から移動時間初期値Ｍ0及び指令速度初期値Ｖ0を読み込む。ここで、パス命令処理部２６は、図３を用いて上述したように、移動時間初期値Ｍ0が時定数Ｆ0未満（Ｍ0＜Ｆ0）の場合、パス命令を付加して図３（ｃ）のような加減速のみの動作パターンとする処理を行う（ステップＳ３、Ｓ４）。なお本実施形態では、教示作業者がパス命令を付加していなくても、Ｍ0＜Ｆ0の場合は加減速のみの動作にする処理を行うものとする。このパス命令処理後の時定数をＦsとする。また時定数Ｆsから、パス命令処理後の移動時間Ｍs及び指令速度Ｖsが計算される。
【００３６】
次にステップＳ５において、図５（ｂ）又は図８（ｂ）に示すように、時定数クランプ部３２が時定数Ｆs又はＦ0に対して前回の時定数に基づくクランプ処理を行い、移動時間Ｍc、時定数Ｆc、指令速度Ｖcを計算する。一方、図２のように移動時間初期値Ｍ0が時定数Ｆ0以上（Ｍ0≧Ｆ0）の場合は、クランプ処理により図９（ｂ）に示すような動作パターンとなる。なお時定数クランプ部３２は、上述のように直前の動作の時定数に基づくクランプ処理を行うが、同時に、機構部固有の振動を防止するように実験を行い調整された閾値（例えばパラメータ記憶部１４に格納）によるクランプ処理を同時に行ってもよい。すなわち、時定数初期値が実験的に調整した閾値より短い場合は、該閾値を今回の動作の時定数とする。
【００３７】
移動時間再計算部２８は、パス命令付加後の移動時間Ｍs又は移動時間初期値Ｍ0を使った場合のサイクルタイム（Ｍs＋Ｆc）又は（Ｍ0＋Ｆc）と、クランプ処理後のサイクルタイム（Ｍc＋Ｆc）とを比較し、クランプ処理後の方がサイクルタイムが長くなければ、Ｍc、Ｆc及びＶcをそのまま最終的な移動時間Ｍf、時定数Ｆf及び指令速度Ｖfとする（ステップＳ６、Ｓ７）。一方、パス命令付加後の移動時間又は移動時間初期値を使用したサイクルタイム（Ｍs＋Ｆc）又は（Ｍ0＋Ｆc）の方がクランプ処理後のサイクルタイム（Ｍc＋Ｆc）より短い場合は、移動時間及び指令速度を再計算し、新たな移動時間Ｍnew及び指令速度Ｖnewを求める（ステップＳ８）。具体的にはＭnewは、図８（ｃ）又は図９（ｃ）に示すように、クランプされた時定数Ｆcを有し、加速度ａにて加減速を行い、全体の移動距離が所定値Ｌに等しくなるように求められる。一例として、Ｍnewは以下に説明する式（３−１）〜（５）を用いて求めることができる。
【００３８】
先ず、ロボットの速度が指令速度Ｖ0に達する場合、全体の移動距離Ｌは次式（３−１）で表される。
Ｌ＝Ｖ0・Ｍ0＝ａ・Ｆ0・Ｍ0                              （３−１）
一方、ロボットの速度が指令速度Ｖ0に達しない場合は、全体の移動距離Ｌは次式（３−２）で表される。なおＶactはロボットが実際に到達する速度である。
Ｌ＝Ｖact・Ｆ0＝ａ・Ｆ0・Ｍ0                            （３−２）
【００３９】
クランプ処理後の時定数Ｆcを用いたときは、指令速度に達する場合及び達しない場合のそれぞれについて、以下の式（４−１）及び（４−２）が成り立つ。
Ｌ＝Ｖnew・Ｍnew＝ａ・Ｆc・Ｍnew                        （４−１）
Ｌ＝Ｖact・Ｆc＝ａ・Ｆc・Ｍnew                          （４−２）
【００４０】
式（３−１）〜（４−２）より、指令速度に達する場合及び達しない場合のいずれについても、新たな移動時間Ｍnewは次式（５）で表される。
Ｍnew＝Ｍ0・Ｆ0／Ｆc                                    （５）
【００４１】
一方指令速度再計算部３０は、Ｍnewを用いた次式（６）により新たな指令速度Ｖnewを計算する。
Ｖnew＝Ｍ0・Ｖ0／Ｍnew                                  （６）
このようにして得られた移動時間Ｍnew、指令速度Ｖnew及び時定数Ｆcが最終的な移動時間Ｍf、指令速度Ｖf及び時定数Ｆfとなる（ステップＳ９）。
【００４２】
ステップＳ７又はＳ９において最終的な移動時間Ｍf、指令速度Ｖf及び時定数Ｆfが決定されたら、ステップＳ１０において第１移動平均フィルタ３４において加減速フィルタ処理が行われる。なお加減速フィルタ処理後の動作パターンは、アナログ的に表示すれば図１０（ａ）のようになるが、詳細には図１０（ｂ）に示すように、ステップ状の定速指令を適当な時間刻みで連続的に行うものであり、これにより振動の少ない滑らかなロボット動作を実現することができる。
【００４３】
なお図６に示すように、制御装置１０は、最終的に決定された移動時間、指令速度及び時定数に基づく加減速フィルタ処理を行う第１移動平均フィルタ３４に直列に、速度指令をより滑らかにして振動を抑制するためのフィルタ処理を行う第２移動平均フィルタ３６を有してもよい。第２移動平均フィルタ３６の時定数は一定とし、第１移動平均フィルタ３４で行われる処理のように時定数を変更する処理は第２移動平均フィルタでは行わない。或いは、第２移動平均フィルタも時定数を変更する処理を行うものとし、第１及び第２移動平均フィルタの少なくとも一方において変更された時定数が前回動作の時定数より小さい場合には、今回の動作の時定数を前回の動作の時定数にクランプすることもできる。また移動平均フィルタをさらに直列に付加して３つ以上の移動平均フィルタを使用してもよい。さらに、指数フィルタのような移動平均フィルタ以外のフィルタを代わりに使用することも可能である。
【００４４】
他の態様として、第１移動平均フィルタ３４と種類の異なる移動平均フィルタを１つ以上並列に使用して、図７に示す処理を異なる移動平均フィルタの各々について行い、得られた複数の結果のうちサイクルタイム（最終的な移動時間と時定数の和）が最も短いものを採用することもできる。
【図面の簡単な説明】
【００４５】
【図１】従来技術に係るロボットの移動制御装置のブロック図である。
【図２】（ａ）所定の移動距離及び指令速度に基づいて移動時間初期値を求める例を示す図であり、（ｂ）（ａ）に加減速フィルタ処理を施して得られる動作パターン例を示す図である。
【図３】（ａ）図２（ａ）に類似し、指令速度に対して移動距離が短い場合を示す図であり、（ｂ）（ａ）に加減速フィルタ処理を施して得られる動作パターン例を示す図であり、（ｃ）（ｂ）の動作パターンを加減速動作のみの動作パターンに変換した例を示す図である。
【図４】（ａ）図３（ｂ）と同様の図であり、（ｂ）（ａ）にクランプ処理を施して得られる動作パターン例を示す図である。
【図５】（ａ）図３（ｃ）と同様の図であり、（ｂ）（ａ）にクランプ処理を施して得られる動作パターン例を示す図である。
【図６】本発明に係るロボットの移動制御装置のブロック図である。
【図７】本発明に係る移動制御装置を用いた移動制御方法の流れの一例を示すフローチャートである。
【図８】（ａ）図３（ａ）と同様の図であり、（ｂ）図５（ｂ）と同様の図であり、（ｃ）（ｂ）の動作パターンに再計算処理を施して得られる動作パターン例を示す図である。
【図９】（ａ）図２（ａ）と同様の図であり、（ｂ）（ａ）にクランプ処理を施して得られる動作パターン例を示す図であり、（ｃ）（ｂ）の動作パターンに再計算処理を施して得られる動作パターン例を示す図である。
【図１０】（ａ）最終的に得られた条件を加減速フィルタ処理して得られる動作パターンをアナログ的に示す図であり、（ｂ）（ａ）の動作パターンをより詳細に表記した例を示す図である。
【符号の説明】
【００４６】
１０    移動制御装置
１２    プログラム記憶部
１４    パラメータ記憶部
１６    補間部
１８    モータ制御部
２２    イナーシャ計算部
２４    時定数計算部
２６    パス命令処理部
２８    移動時間再計算部
３０    指令速度再計算部
３２    時定数クランプ部
３４    第１移動平均フィルタ
３６    第２移動平均フィルタ
５０    ロボット機構部
【図１】
0005198930.tif 000002
【図２】
0005198930.tif 000003
【図３】
0005198930.tif 000004
【図４】
0005198930.tif 000005
【図５】
0005198930.tif 000006
【図６】
0005198930.tif 000007
【図７】
0005198930.tif 000008
【図８】
0005198930.tif 000009
【図９】
0005198930.tif 000010
【図１０】
0005198930.tif 000011