(57)【特許請求の範囲】
【請求項１】
主として指定点の位置のみに関心を置いて制御対象の特定部が指定点を通るように教示し若しくは設定する制御と、制御対象が指定経路に沿って運動するように教示し若しくは設定する制御とを行うことができるサーボ制御装置において、
制御対象の特定部の指定点への移動に係る変位量の制御指令値又は制御対象の特定部を指定経路上の点位置に移動させるための制御指令値を発する指令手段と、
該指令手段からの制御指令値と、加減速曲線又は指定経路の曲線長を示すパラメータの時間的変化において速度や線速度がピーク値に達するまでの時間（以下、「ピーク速度到達時間」という。）との関係を規定するとともに、制御指令値からピーク速度到達時間の値を決定した後、これをその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータの値を決定し、制御指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線又は指定経路の曲線長に係る線速度変化についてその山の高さや時間軸方向の幅を変化させることにより加減速曲線又は線速度の時間的変化を示す制御曲線を生成して、これらの曲線に従う制御信号を制御対象に送出する加減速又は線速度変化のパターン生成手段と、
制御対象が所定の位置精度を保って運動するように精度指定値を入力し又は設定するための精度入力／設定手段と、
制御対象の特定部の運動状態を検出して位置精度が上記精度指定値の示す範囲内にあるか否かを判断し、判断結果に応じて指令手段から加減速又は線速度変化のパターン生成手段への制御指令値の送出及びその停止のタイミングを制御し、あるいは当該制御指令値に係る時間微分量を変化させる制御手段とを備えた
ことを特徴とするサーボ制御装置。
【請求項２】
主として指定点の位置のみに関心を置いて制御対象の特定部が指定点を通るように教示し若しくは設定する制御と、制御対象が指定経路に沿って運動するように教示し若しくは設定する制御とを行うことができるサーボ制御装置において、
制御対象の特定部の指定点への移動に係る変位量の制御指令値又は制御対象の特定部を指定経路上の点位置に移動させるための制御指令値を発する指令手段と、
該指令手段からの制御指令値と、加減速曲線又は指定経路の曲線長を示すパラメータの時間的変化におけるピーク速度到達時間との関係を規定するとともに、制御指令値からピーク速度到達時間の値を決定した後、これをその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータの値を決定し、制御指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線又は指定経路の曲線長に係る線速度変化についてその山の高さや時間軸方向の幅を変化させることにより加減速曲線又は線速度の時間的変化を示す制御曲線を生成して、これらの曲線に従う制御信号を制御対象に送出する加減速又は線速度変化のパターン生成手段と、
制御対象が所望の速度で運動するように速度及びその精度に係る指令値を入力し又は設定するための速度入力／設定手段と、
制御対象の特定部の運動状態を検出して速度がその精度指定値の示す範囲内にあるか否かを判断し、判断結果に応じて指定点間の移動経路又は指定経路を示す曲線の分割に係る線素長を変化させて当該曲線の再分割を行って曲線上の点位置を逐次に更新し、あるいは当該制御指令値に係る時間微分量を変化させる制御手段とを備えた
ことを特徴とするサーボ制御装置。
【請求項３】
主として指定点の位置のみに関心を置いて制御対象の特定部が指定点を通るように教示し若しくは設定する制御と、制御対象が指定経路に沿って運動するように教示し若しくは設定する制御とを行うことができるサーボ制御方法において、
（１）制御対象が所定の位置精度を保って運動するように精度指定値を入力し又は設定し、
（２）制御対象の特定部を指定点に移動させ又は制御対象の特定部を指定経路上の点位置に移動させるための制御指令値を求めた後、
（３）該制御指令値から、加減速曲線又は指定経路の曲線長を示すパラメータの時間的変化におけるピーク速度到達時間を決定した後、
（４）ピーク速度到達時間をその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータの値を決定し、
（５）制御指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線又は指定経路の曲線長に係る線速度変化についてその山の高さや時間軸方向の幅を変化させることにより加減速曲線又は線速度の時間的変化を示す制御曲線を生成するとともに、
制御対象の特定部の運動状態を検出して位置精度が上記精度指定値の示す範囲内にあるか否かを判断し、その判断結果に応じて制御指令値に基づく加減速又は線速度変化に係る制御曲線の生成過程の進行及び停止のタイミングを制御し、あるいは当該制御指令値に係る時間微分量を変化させ、
（６）（５）の加減速曲線又は制御曲線に従う制御信号を制御対象に送出する
ことを特徴とするサーボ制御方法。
【請求項４】
主として指定点の位置のみに関心を置いて制御対象の特定部が指定点を通るように教示し若しくは設定する制御と、制御対象が指定経路に沿って運動するように教示し若しくは設定する制御とを行うことができるサーボ制御方法において、
（１）制御対象が所望の速度で運動するように速度及びその精度に係る指令値を入力し又は設定し、
（２）制御対象の特定部を指定点に移動させ又は制御対象の特定部を指定経路上の点位置に移動させるための制御指令値を求めた後、
（３）該制御指令値から、加減速曲線又は指定経路の曲線長を示すパラメータの時間的変化におけるピーク速度到達時間を決定した後、
（４）ピーク速度到達時間をその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータの値を決定し、
（５）制御指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線又は指定経路の曲線長に係る線速度変化についてその山の高さや時間軸方向の幅を変化させることにより加減速曲線又は線速度の時間的変化を示す制御曲線を生成するとともに、
制御対象の特定部の運動状態を検出して速度がその精度指定値の示す範囲内にあるか否かを判断し、その比較結果に応じて、指定点間の移動経路又は指定経路を示す曲線の分割に係る線素長を変化させて当該曲線の再分割を行って曲線上の点位置を逐次に更新し、あるいは当該制御指令値に係る時間微分量を変化させ、
（６）（５）の加減速曲線又は制御曲線に従う制御信号を制御対象に送出する
ことを特徴とするサーボ制御方法。
【請求項５】
ロボットが、複数のアーム及び／又はツール搭載部と、アーム又はツール搭載部の駆動源及びその駆動回路を含む複数のサーボ系とから構成され、該ロボットの作用端が指定点を通るように教示し若しくは設定する制御と、ロボットの作用端が指定経路に沿って運動するように教示し若しくは設定する制御とを行うことができるロボット制御装置において、
各サーボ系を制御するための手段が、
ロボットの作用端の指定点への移動に係る変位量の制御指令値又はロボットの作用端を指定経路上の点位置に移動させるための制御指令値を発する指令手段と、
該指令手段からの制御指令値と、加減速曲線又は指定経路の曲線長を示すパラメータの時間的変化におけるピーク速度到達時間との関係を規定するとともに、制御指令値からピーク速度到達時間の値を決定した後、これをその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータの値を決定し、制御指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線又は指定経路の曲線長に係る線速度変化についてその山の高さや時間軸方向の幅を変化させることにより加減速曲線又は線速度の時間的変化を示す制御曲線を生成して、これらの曲線に従う制御信号を各サーボ系に送出する加減速又は線速度変化のパターン生成手段と、
ロボットが所定の位置精度を保って運動するように精度指定値を入力し又は設定するための精度入力／設定手段と、
ロボットの作用端の運動状態を検出して位置精度が上記精度指定値の示す範囲内にあるか否かを判断し、判断結果に応じて指令手段から加減速又は線速度変化のパターン生成手段への制御指令値の送出及びその停止のタイミングを制御し、あるいは当該制御指令値に係る時間微分量を変化させる制御手段とを備えた
ことを特徴とするロボット制御装置。
【請求項６】
ロボットが、複数のアーム及び／又はツール搭載部と、アーム又はツール搭載部の駆動源及びその駆動回路を含む複数のサーボ系とから構成され、該ロボットの作用端が指定点を通るように教示し若しくは設定する制御と、ロボットの作用端が指定経路に沿って運動するように教示し若しくは設定する制御とを行うことができるロボット制御装置において、
各サーボ系を制御するための手段が、
ロボットの作用端の指定点への移動に係る変位量の制御指令値又はロボットの作用端を指定経路上の点位置に移動させるための制御指令値を発する指令手段と、
該指令手段からの制御指令値と、加減速曲線又は指定経路の曲線長を示すパラメータの時間的変化におけるピーク速度到達時間との関係を規定するとともに、制御指令値からピーク速度到達時間の値を決定した後、これをその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータの値を決定し、制御指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線又は指定経路の曲線長に係る線速度変化についてその山の高さや時間軸方向の幅を変化させることにより加減速曲線又は線速度の時間的変化を示す制御曲線を生成して、これらの曲線に従う制御信号を各サーボ系に送出する加減速又は線速度変化のパターン生成手段と、
ロボットが所望の速度で運動するように速度及びその精度に係る指令値を入力し又は設定するための速度入力／設定手段と、
ロボットの作用端の運動状態を検出して速度がその精度指定値の示す範囲内にあるか否かを判断し、判断結果に応じて指定点間の移動経路又は指定経路を示す曲線の分割に係る線素長を変化させて当該曲線の再分割を行って曲線上の点位置を逐次に更新し、あるいは当該制御指令値に係る時間微分量を変化させる制御手段とを備えた
ことを特徴とするロボット制御装置。
【請求項７】
ロボットが、複数のアーム及び／又はツール搭載部と、アーム又はツール搭載部の駆動源及びその駆動回路を含む複数のサーボ系とから構成され、該ロボットの作用端が指定点を通るように教示し若しくは設定する制御と、ロボットの作用端が指定経路に沿って運動するように教示し若しくは設定する制御とを行うことができるロボット制御方法において、
（１）ロボットの作用端が所定の位置精度を保って運動するように精度指定値を入力し又は設定し、  
（２）ロボットの作用端を指定点に移動させ又はロボットの作用端を指定経路上の点位置に移動させるための制御指令値を求めた後、
（３）該制御指令値から、加減速曲線又は指定経路の曲線長を示すパラメータの時間的変化におけるピーク速度到達時間を決定した後、
（４）ピーク速度到達時間をその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータの値を決定し、
（５）制御指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線又は指定経路の曲線長に係る線速度変化についてその山の高さや時間軸方向の幅を変化させることにより加減速曲線又は線速度の時間的変化を示す制御曲線を生成するとともに、
ロボットの作用端の運動状態を検出して位置精度が上記精度指定値の示す範囲内にあるか否かを判断し、その判断結果に応じて制御指令値に基づく加減速又は線速度変化に係る制御曲線の生成過程の進行及び停止のタイミングを制御し、あるいは当該制御指令値に係る時間微分量を変化させ、
（６）（５）の加減速曲線又は制御曲線に従う制御信号を各サーボ系に送出する
ことを特徴とするロボット制御方法。
【請求項８】
ロボットが、複数のアーム及び／又はツール搭載部と、アーム又はツール搭載部の駆動源及びその駆動回路を含む複数のサーボ系とから構成され、該ロボットの作用端が指定点を通るように教示し若しくは設定する制御と、ロボットの作用端が指定経路に沿って運動するように教示し若しくは設定する制御とを行うことができるロボット制御方法において、
（１）ロボットの作用端が所望の速度で運動するように速度及びその精度に係る指令値を入力し又は設定し、
（２）ロボットの作用端を指定点に移動させ又はロボットの作用端を指定経路上の点位置に移動させるための制御指令値を求めた後、
（３）該制御指令値から、加減速曲線又は指定経路の曲線長を示すパラメータの時間的変化におけるピーク速度到達時間を決定した後、
（４）ピーク速度到達時間をその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータの値を決定し、
（５）制御指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線又は指定経路の曲線長に係る線速度変化についてその山の高さや時間軸方向の幅を変化させることにより加減速曲線又は線速度の時間的変化を示す制御曲線を生成するとともに、
ロボットの作用端の運動状態を検出して速度がその精度指定値の示す範囲内にあるか否かを判断し、その比較結果に応じて、指定点間の移動経路又は指定経路を示す曲線の分割に係る線素長を変化させて当該曲線の再分割を行って曲線上の点位置を逐次に更新し、あるいは当該制御指令値に係る時間微分量を変化させ、
（６）（５）の加減速曲線又は制御曲線に従う制御信号を各サーボ系に送出する
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、制御対象の特定部に対して指定点間を移動させる制御や特定の指定経路に従って移動させる制御とを統一的に取り扱うことができるようにしたサーボ制御装置及びサーボ制御方法並びにこれらを用いたロボット制御装置及びロボット制御方法に関する。
【０００２】
【従来の技術】
ある制御対象に対する位置制御においては、指定点の位置のみに関心があり、途中経路についてはあまり関心のない制御と、制御対象を指定した経路に沿って運動させたい制御とが知られている。
【０００３】
例えば、ロボットの制御では、作業の教示に際して教示経路上の重要な点だけを指定してロボットの作用端がこれらの指定点を通るように制御するＰＴＰ（Ｐｏｉｎｔ  Ｔｏ  Ｐｏｉｎｔ）動作や、指定された曲線に沿ってロボットの作用端を移動させるＣＰ（Ｃｏｎｔｉｎｕｏｕｓ  Ｐａｔｈ）動作を挙げることができる。尚、前者は主にロボットの作用端を指定点の間で迅速に移動させたい場合に用いられ、後者は主にロボットの作用端を指定曲線に沿って所定の制御精度を維持しながら移動させたい場合に用いられる。
【０００４】
【発明が解決しようとする課題】
しかしながら、これまでに提案された制御方法や装置では、上記した２種類の制御を統一的に取り扱うことが難しいという問題がある。
【０００５】
即ち、制御対象の速度や角速度について加速制御を行った後、減速制御へと移行させたり、あるいは加速制御後に所定期間の定速制御を経て減速制御へと移行させるような制御を行う場合には、加減速曲線（あるいは加減速指令曲線）の生成が制御要素として基本的な事項であるが、該加減速曲線の生成のためのアルゴリズムが上記２種類の制御について著しく異なっている場合には、両制御を最初から異質のものとして区別して、各別のアルゴリズムに従った加減速曲線の生成を行う必要があるため、制御方法や装置の複雑化を招く原因となり、装置の設計や保守上の負担が大きい。また、設計者は２種類の制御について如何なる加減速曲線を採用すれば、適正な制御を行うことができるかについて制御の特質を考慮した上で制御毎に模索する必要が生じるため、ある制御対象に係る加減速曲線の生成方法を、別の制御対象に適用する際にどのような設計指針に頼れば良いかについて明確な答えを出すことが困難となる。
【０００６】
そこで、本発明は、主として指定点の位置のみに関心を置いて制御対象が指定点を通るように教示し若しくは設定する制御と、制御対象が指定した経路に沿って運動するように教示し若しくは設定する制御について、共通化された明確なアルゴリズムに従って加減速曲線を生成することにより、両制御に対する統一的な制御を実現することを課題とする。
【０００７】
【課題を解決するための手段】
本発明は上記した課題を解決するために、下記の（１）乃至（６）の構成を有するものである。
【０００８】
（１）制御対象が所定の位置精度を保って運動するように精度指定値を入力し又は設定する（そのための精度入力／設定手段を設ける。）。あるいは、制御対象が所望の速度で運動するように速度及びその精度に係る指令値を入力し又は設定する（そのための速度入力／設定手段を設ける。）。
【０００９】
（２）制御対象の特定部を指定点に移動させるための変位量の制御指令値又は制御対象の特定部を指定経路上の点位置に移動させるための制御指令値を求める。この制御指令値を発する手段として指令手段を設ける。
【００１０】
（３）（２）の制御指令値から、加減速曲線又は指定経路の曲線長を示すパラメータの時間的変化において速度や線速度がピーク値に達するまでに要するピーク速度到達時間を決定する。
【００１１】
（４）ピーク速度到達時間をその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータの値を決定する。
【００１２】
（５）制御指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線又は指定経路の曲線長に係る線速度変化についてその山の高さや時間軸方向の幅を変化させることにより加減速曲線又は線速度の時間的変化を示す制御曲線を生成する。その際、制御対象の特定部の運動状態を検出して位置精度が上記精度指定値の示す範囲内にあるか否かを判断し、その判断結果に応じて制御指令値に基づく加減速又は線速度変化に係る制御曲線の生成過程の進行及び停止のタイミングを制御し、あるいは当該制御指令値に係る時間微分量を変化させる。又は、制御対象の特定部の運動状態を検出して速度がその精度指定値の示す範囲内にあるか否かを判断し、その比較結果に応じて、指定点間の移動経路又は指定経路を示す曲線の分割に係る線素長を変化させて当該曲線の再分割を行って曲線上の点位置を逐次に更新し、あるいは当該制御指令値に係る時間微分量を変化させる。
【００１３】
（６）（５）の加減速曲線又は制御曲線に従う制御信号を制御対象に送出する。
上記（３）乃至（５）に係る処理を行うために加減速又は線速度変化のパターン生成手段を設ける。
【００１４】
従って、本発明によれば、制御対象の特定部を指定点に移動させる場合でも、制御対象の特定部を指定経路に沿って移動させる場合でも、制御指令値に応じた時間軸伸縮用パラメータ値を決定して加減速曲線又は線速度の時間的変化を示す制御曲線を生成することができるので、両制御を統一的に取り扱うことができる。
【００１５】
【発明の実施の形態】
以下に、本発明に係るサーボ制御装置及びサーボ制御方法について説明する。
【００１６】
先ず、本発明に係る制御対象については、位置や位相角等の制御の対象となる特定の部分又は物理量が制御機構によって空間的な移動又は回転等によって状態変化や量的な変化を制御し得ることが必要である。例えば、制御対象をモータ及びその制御系を含む系（以下、「モータ系」という。）に特定すると、モータ軸が上記特定の部分に相当し、その回転角が上記物理量に相当する。従って、単なる撮像手段のように対象物に係る光学的情報に電気的に処理するだけでは本発明に係る制御対象としては不充分であり、例えば、この場合には対物レンズの駆動系や、撮像手段自体の移動機構を含む制御系まで対象範囲を拡げる必要がある。
【００１７】
また、上記したように、制御対象に対しては、主として指定点の位置のみに関心を置いて制御対象が指定点を通るように教示し若しくは設定（プログラム上の記述、検出や学習した点に基づく指定等を含む。）する制御（以下、「点間移動制御」という。）と、制御対象が指定した経路に沿って運動するように教示し若しくは設定（プログラム上の記述、検出や学習した点に基づく指定等を含む。）する制御（以下、「経路指定制御」という。）とが可能でなければならない。即ち、制御対象の特定部分が１次元的かつ１方向の運動しか制御することができないような場合には制御対象とならない。規定の経路、例えば、一直線上を移動する場合には、当該直線上に所望の点を指定することができるので上記点間移動制御が可能であるが、制御対象の移動方向が１方向に規定されている場合には経路指定時に選択の余地がない（つまり、直線上の一の経路のみである。）。尚、制御対象の移動方向について２方向が許されるならば、直線上の点について順序関係を付けることにより始点から終点に至るまでの経路が一律には決まらない（途中の通過点の前後関係を入れ換えれば、異なる経路を得ることができる。）ので、経路指定制御が可能である。
【００１８】
制御対象としてロボットやその制御系を含むロボット系を例示すると、当該ロボット系において上記ＰＴＰ動作に係る制御が点間移動制御に相当し、また上記ＣＰ動作に係る制御が経路指定制御に相当することは明らかであり、ロボット系においてはその作用端に関して両者の制御が可能である。
【００１９】
以上で用語の定義が明らかとなったので、先ず、点間移動制御に係るサーボ制御装置の構成について説明する。
【００２０】
図１に示すように、サーボ制御装置１は、指令手段２、加減速パターン生成手段３から構成されている。尚、図では制御対象４を「サーボ系」に特定しているが、これは駆動源及び／又は駆動機構の他、サーボ回路等を含む広い系を意味しており、単一の部品だけから成る系やこれに付随する制御部品を含む系を指す。
【００２１】
指令手段２は、この場合点間移動制御に係る指令値を生成して加減速パターン生成手段３に送出するものである。例えば、制御対象をモータ系に特定し、モータ軸の位相角Θについて、図２に示すようなランプ信号（その折れ時間を「Ｔf」とし、時刻ｔ＝ＴfにおいてΘ＝ΔΘとする。）には、横軸に示す時間ｔの経過に従ってΘ値を実時間処理によって時々刻々と算出して、これらを指令値とする。尚、図２ではΘに係るオフセットを無視しているが、これは下記の議論についての一般性を失わせるものではない。尚、図２の下段に示すグラフ図はΘ(1)（右上の添え字「(n)」は時間によるｎ（ｎは自然数。）階の微分を意味し、この表記法は以下でも使用する。）の時間的変化を示している。
【００２２】
また、図１では、説明の便宜上、このようにして得られる指令値をメモリ内に展開しておき、メモリ番地を指すポインタＰ（図ではスイッチの記号で示す。）を介して指令値が順次取り出されて加減速パターン生成手段３に送出されるように表現されている。
【００２３】
所定のサンプリング周期（これを「Ｔs」とする）をもって時間軸に標本化を施した場合に、先ず、ΔΘをδΘ＝ΔΘ／[Ｔf／Ｔs]（但し、[Ｘ]は実数Ｘを越えない最大の整数値を示すガウス記号である。）によって等分割する。
【００２４】
そして、このδΘ毎に増加するΘ値、つまりΘ＝ｉ・δΘ（ｉ＝１、２、・・・、Ｎ）を、ｉ番地の示すメモリに順次に格納する。尚、ΔΘは（Ｎ＝[Ｔf／Ｔs]＋１）番地に格納される。
【００２５】
ポインタＰの指すメモリ番地の内容を「＊Ｐ」とすると、ポインタＰをメモリの１番地に設定した後、一定期間毎にポインタＰを切り換えていけば、メモリ内容を１番地から順番に取り出すことができる。つまり、ポインタＰをサンプリング周期Ｔs毎にインクリメント（１単位ずつの増加）させていけば、＊（Ｐ＋ｉ）＝（ｉ＋１）・δΘとなる。よって、これらを時系列に従って配列したものと、図２に示すランプ信号とが等価であることは明らかある。
【００２６】
制御対象が、例えばロボットのように複数の駆動軸から構成されている場合には、図１のような制御構成が駆動軸毎に用意され、各ポインタについての同期的な操作が行われる。
【００２７】
尚、指令値のメモリへの展開が便宜上のものであること（即ち、上記の標本化計算を実時間処理で行うことができる場合にはメモリ展開は不要である。）、また、指令信号がランプ信号のみに限定されないことに注意を要する。そして、点間移動制御においてポインタＰが一定時間間隔で切り換ることは、後述する経路指定制御との対比的な説明に関して意味をもつことに留意されたい。
【００２８】
加減速パターン生成手段３は、指令値に応じて加減速制御に係る制御パターン（加減速パターン）を生成するものである。尚、ここにいう「加減速パターン」とは、加減速曲線によって直接に記述される状態量（速度や角速度）は勿論、該状態量の時間微分や積分等を含む広義の概念である。つまり、位置や位相角を示す関数の時間による１階微分で定義される速度関数あるいは角速度関数は、その制御において加速期間や減速期間（時には定速期間）を含んでおり、これをグラフ化したものが加減速曲線に他ならないが、「加減速パターン」という時には、速度又は角速度の他、速度又は角速度に関連して時間とともに変化する量（位置や加速度等）を含むものとする。
【００２９】
加減速パターンの生成法には、例えば、下記に示す２通りの方法を挙げることができる。
【００３０】
（１）関数計算による方法（図３参照。）
現実の制御対象の応答特性が、理論的に明確に解析されている場合に、制御変数を関数式として表現することができる場合には、加減速パターンの生成対象となる量を予め数式によって用意することができる。
【００３１】
例えば、速度を例にすると、図３に示す速度の基準関数ΩN（ｔ）にある操作（以下、「スケーリング操作」という。）を施すことによって加減速曲線を生成することができる。尚、「スケーリング操作」とは関数値そのものの変倍操作と関数の時間軸方向の伸縮操作を含む操作である。即ち、基準関数ΩN（ｔ）（そのピーク値を仮に１とし、ピーク速度到達時間（速度がピーク値に到達するまでに要する時間）を「ＴPn」とする。）に対して制御対象についての総移動量Δθ（尚、この場合の移動の意味には回転も含まれており、例えば、モータを例にするとΔθは位相角の総量に相当する。）を掛けることによって図にΩv（ｔ）で示すように山の高さを変化させたり、あるいは、ピーク速度到達時間がＴPnである基準関数ΩN（ｔ）に対してＴPnをα倍することによって図にΩt（ｔ）で示すように時間軸方向の伸縮の度合を変化させる操作を基本として、両操作を組み合わせることによって図にΩv*t（ｔ）に示すような曲線を得ることができる。尚、時間軸伸縮用パラメータαの値についてはΔθとの関係において決定する必要があるが、その説明については後述する。
【００３２】
このように、制御変数に係る基準関数（又は関数群）を予め決定しておけば、これらにスケーリング操作を施すことによって加減速パターンに係る関数を容易に得ることができ、その際、基準関数の関数値の計算とこれに四則演算を組みあわせた計算レベルで済むことになる。尚、加減速曲線を構成する加速部分と減速部分とが時間軸について対称性（線対称性及び／又は回転対称性）を有する場合には、加速部分又は減速部分に係る基準関数だけを用意すれば良い。何故なら、どちらか一方の部分に係る基準関数に対して時間軸に係る対称化操作を施せば他方の部分に係る関数を容易に求めることができるからである。
【００３３】
（２）仮想サーボ系を用いる方法（図４参照。）
ここにいう「仮想サーボ系」とは、現実のサーボ系に対応した構成をソフトウェア処理によって模擬的に構築して制御装置内に用意される系であり、これを計算手段として用いることで加減速パターンの生成や各種の推定量の算出に利用することができる。
【００３４】
例えば、モータの制御回路には、モータの制御に直接に関係する回路部分や制御の安定化のための動的補償に係る部分等がサーボ系内に設けられるが、これらに対応した構成を有する仮想サーボ系（以下、「仮想モータ系」という。）を、ソフトウェア処理による内部モデルとして制御装置内に用意すれば、仮想モータ系に対して指令を与えた時の応答出力を得て、これをそのまま現実のサーボ系の制御に利用することができる。
【００３５】
また、サーボ系の構成が比較的簡単な場合、即ち、サーボ系の応答特性が解析式によって表現することができ、かつ計算が簡単な場合には上記（１）のように関数計算による方法が有効であるが、一般には、サーボ系の応答特性が常に解析式によって容易に表わされるとは限らないので、現実のサーボ系を模した仮想サーボ系を導入することは、実際的な見地から有用である。
【００３６】
図４は、制御対象をモータ系に特定した場合の現実のモータ系や仮想モータ系の構成の一例を示すものである。
【００３７】
図４（ａ）は現実のモータ系の一例を簡略化してシグナルフロー線図で示したものであり、図中の１点鎖線の左側がソフトウェア処理又は回路によって構築される部分であり、１点鎖線の右側がモータや機械系の部分である。また、図４（ｂ）は図４（ａ）に対応した仮想モータ系を示すシグナルフロー線図であり、全てソフトウェア処理により構築することができる。
【００３８】
尚、図中の記号の意味を表１にまとめて示す。
【００３９】
【表１】
0003671505.tif 000002
【００４０】
今、上記仮想モータ系にアナログ近似（つまり、１−ｚ-1≒Ｔs・ｓ、（１＋ｚ-1）／（２・（１−ｚ-1））≒１／（Ｔs・ｓ））を施すことによって下式［数１］に示すようなオープン特性に係る伝達関数（これ「ＧOP（ｓ）」と記す。）が求まり、この式から位置指令入力ΘIN（ｓ）に対する位置出力ΘOUT（ｓ）の比をとることで閉ループ伝達関数が下式［数２］に示すように得られる。
【００４１】
【数１】
0003671505.tif 000003
【００４２】
【数２】
0003671505.tif 000004
【００４３】
尚、［数２］式におけるＴi（ｉ＝１、２、３）はループの時定数に相当する量であり、「−１／Ｔi」はループの極を示す。つまり、［数２］式の第２式の分母であるｓについての３次式を因数分解したものが［数２］式の第３式の分母であり、両者を比較することによってＴiとサーボパラメータとの間には下式のような関係があることが分かる。
【００４４】
【数３】
0003671505.tif 000005
【００４５】
尚、この例では、［数２］式から明らかなように仮想モータ系が３次のロ−パスフィルタと等価な構成を有するが、仮想モータ系は、一般にはｎ（ｎは自然数。）次のフィルタと等価な構成を有することに注意する。
【００４６】
上記の仮想モータ系に各種の位置入力（これを「θREF」とする。）を与えた時の出力によって加減速パターンを得ることができ、例えば、θREFとして、図５（ａ）に示すようなステップ信号を用いた場合には、位置、速度、加速度の出力をそれぞれ「θO（ｔ）」、「θO(1)（ｔ）」、「θO(2)（ｔ）」とするとこれらは下式のようになる。
【００４７】
【数４】
0003671505.tif 000006
【００４８】
尚、ピーク速度到達時間ＴPは、加速度がゼロになる時点として下式［数５］に示すように決まり（ＴPはＴi（ｉ＝１、２、３）のみに依存する。）、また、「β」は仮想モータ系に固有の量であり、下式［数６］から計算される。
【００４９】
【数５】
0003671505.tif 000007
【００５０】
【数６】
0003671505.tif 000008
【００５１】
図５（ｂ）はθO（ｔ）とθO(1)（ｔ）とを併せて示すグラフ図であり、θO(1)（ｔ）の加速部分（つまり、期間０≦ｔ≦ＴPの部分）を基準曲線に採用して、これをｔ＝ＴPにおいて時間的に折り返すことによって破線で示すような減速部分を得るように制御すると、位置θO（ｔ）が破線で示すようにΔθに速やかに漸近してｔ＝２・ＴPの時点で目標位置に到達することになる。
【００５２】
図６は位置入力θREFとしてランプ信号を仮想モータ系に与えた例を示すものであり、図６（ａ）に示すようにランプ信号の折れ時間を「Ｔf」とし、位置、速度、加速度の出力をそれぞれ「θO（ｔ）」、「θO(1)（ｔ）」、「θO(2)（ｔ）」とするとこれらは下式のようになる。
【００５３】
【数７】
0003671505.tif 000009
【００５４】
尚、ピーク速度到達時間ＴPは、加速度がゼロになる時点として下式［数８］に示すように決まり、これはΔθやＴfに無関係な量（Ｔi（ｉ＝１、２、３）のみに依存する。）である。
【００５５】
【数８】
0003671505.tif 000010
【００５６】
図６（ｂ）にθO（ｔ）とθO(1)（ｔ）の曲線の一例を併せて示す。
【００５７】
尚、［数４］式や［数７］式の導出のためには、ステップ信号やランプ信号についてラプラス変換を施したものに［数２］式の右辺を掛けてから逆ラプラス変換を行えば良いが、それらの計算の過程は重要でないので省略する。
【００５８】
ところで、［数８］式において、時間の次元をもつ量（Ｔi、Ｔf）をすべてα倍する操作を考えると、下式のようになる。
【００５９】
【数９】
0003671505.tif 000011
【００６０】
上式によってＴiやＴfをα倍しても［数８］式と同様の関係が成り立ち、新たなピーク速度到達時間がα・ＴPとなる。つまり、Ｔiをα倍することは［数３］式におけるサーボパラメータを下式［数１０］のように変換することと等価であり（変換後のパラメータは「′」を付して示す。但し、ｇｍ、Ｔsについては固定。）、仮想モータ系の周波数特性の形を変えずにループの極配置を変更することである。以下では、この変換のことを「α変換」と呼ぶことにする。
【００６１】
【数１０】
0003671505.tif 000012
【００６２】
α変換によって、［数７］式のθ（ｔ）、θ(1)（ｔ）、θ(2)（ｔ）がどのように変換するかを知るのは容易であり、これらは下式のような変換則に従う。
【００６３】
【数１１】
0003671505.tif 000013
【００６４】
尚、［数７］式のθO(1)（ｔ）を時間によりもう一回微分したものがゼロとなる時点によって加速度が正値のピーク値に達する時間や加速度が負値のピーク値に達する時間を求めることができ、これらの時間をα倍することはα変換によって加速度が下式のようになることと等価である。
【００６５】
【数１２】
0003671505.tif 000014
【００６６】
よって、加速度の大きさはΩ（＝Δθ／Ｔf）やαの値によって制御することができる。尚、このような加速度に係る制御は、モータ系のトルク制限、つまり、モータ電流を決定する加速度が過大な値にならないようにするのに必要となる。
【００６７】
上記のα変換の説明ではランプ信号に関する例を示したが、ステップ信号の場合にθ（ｔ）、θ(1)（ｔ）、θ(2)（ｔ）が下式の変換則に従うことを確かめるのは容易であり、仮想モータ系への入力信号にどのような信号を用いるかに応じて各種の変換則を得ることができる。
【００６８】
【数１３】
0003671505.tif 000015
【００６９】
以上のように、α値を何等かの方法によって決めれば、α変換によって仮想モータ系の周波数特性に係る極配置を制御することができることが明らかとなったが、α値が比の値であることから分かるようにその基準が必要となる。
【００７０】
そこで、仮想モータ系の基準系を、そのピーク速度到達時間値「ＴPMIN」を用いて定義すると、該基準系は、図７に示すように、サーボパラメータＫiMIN、ＫPMIN、ＫMINとＴPMINとの組み[ＫiMIN，ＫPMIN，ＫMIN，ＴPMIN]によってその特性を記述することができる。尚、基準系のサーボパラメータＫiMIN、ＫPMIN、ＫMINは、現実のモータ系に係る時定数又はサーボパラメータ値に合せて決められる。
【００７１】
この基準系の導入によって、αは下式のように定義される。
【００７２】
【数１４】
0003671505.tif 000016
【００７３】
つまり、何等かの方法で決定されるＴP値からαを求め、図７に示すように、基準系に対してα変換を施すことによって仮想モータ系がその都度得られ（[Ｋi＝ＫiMIN／α2，ＫP＝α・ＫPMIN，Ｋ＝α・ＫMIN，ＴP＝α・ＴPMIN]によりその特性が特定される。）、これに位置指令θREFを入力すれば、その出力θOとしてピーク速度到達時間ＴPの加減速パターンを得ることができる。尚、ロボットのように複数の駆動軸によって構成される系では、一般には各サーボ系に対応した仮想サーボ系が用いられる。また、上記［数１４］式ではパラメータαがＴPをその基準値で割ることによって定義されたが、αは一般にはＴPをその基準値で割ることで無次元化される値の関数（例えば、αがＴP／ＴPMINの２乗に比例する等。）とされる。
【００７４】
図８は点間移動制御に係る加減速パターンの生成の仕方を概念的に示すものであり、上記の仮想サーボ系を用いた例を示している。尚、説明に具体性を与えるために、指令信号としてはランプ信号を用いることにする。
【００７５】
図中の「θREF」はランプ信号であり、これが仮想モータ系の位置指令に係るノードに与えられた結果、加減速パターン、つまり、速度出力θO(1)や位置出力θOが得られることになる。
【００７６】
ランプ信号信号θREFは、その折れ時間Ｔfに達するまでの期間（０≦ｔ≦Ｔf）において一定の傾きの傾斜部を有し、ｔ＞Ｔfにおいて一定値Δθとなり、これが速度θO(1)に係るピーク速度到達時間ＴPだけ持続する信号である。よって、傾斜部の傾きはΔθ／Ｔfに等しい。
【００７７】
また、速度θO(1)は、その加速期間の長さと減速期間の長さがいずれもピーク速度到達時間ＴPに等しくなっており、減速部の形状は加速部の形状に対して対称性を有しており、両者は時間軸についての線対称化操作及び点対称化（回転）操作によってお互いに一致させることができる。尚、このような時間軸に係る対称性は、制御対象の加速度（あるいはトルク）−速度（あるいは角速度）線図上の特性についての対称性に起因しており、よって、一般には加速期間の長さと減速期間の長さとが一致するとは限らないことに注意を要する。また、位置θOや速度θO(1)の形状についての具体例については上記［数４］式を参照されたい。
【００７８】
ところで、上記したように加減速パターンの生成にあたって、α値の決定のためにはＴP値を決定する必要があり、このために総移動量ΔθとＴPとを予め関係付けておいてΔθからＴPを決定する方法を用いることができる。
【００７９】
例えば、図９に示すように、横軸にΔθをとり、縦軸にＴPをとると、ＴP値の下限値及び上限値にそれぞれ対応した点ＭＩＮ（ΔθMIN，ＴPMIN）、点ＭＡＸ（ΔθMAX，ＴPMAX）が制御対象に固有の点として決まる。つまり、下限値ＴPMINは、制御対象の周波数特性によって決まる値であり、例えば、上述した［数１４］式の基準値ＴPMINをこの下限値に一致させることができる。また、上限値ＴPMAXは制御対象の最大速度によって規定される。尚、ピーク速度到達時間の下限や上限を考慮して加減速曲線を生成する理由は、制御対象の能力を越える動作を禁止することで、過負荷や故障等が起きるのを防ぐためであり、これによって制御対象に対して負担のかからない加減速制御を行うことができる。
【００８０】
上記点ＭＩＮと点ＭＡＸとの間をどのような形状の線で結ぶかについては、何を評価関数にするかによって異なるが、その具体的な説明については本発明の要旨に直接関係がないので省略する。尚、図では、点ＭＩＮと点ＭＩＮとの間を直線で結んだ特性となっており、０≦Δθ≦ΔθMINの範囲ではＴP＝ＴPMIN、ΔθMIN≦Δθ≦ΔθMAXの範囲では直線の傾斜に応じたＴP値（但し、ＴPMIN≦ＴP≦ＴPMAX）、Δθ≧ΔθMAXの範囲ではＴP＝ＴPMAXがそれぞれ得られることになる。
【００８１】
また、この例では一のΔθに対してＴP値が決まるが、制御対象が複数の駆動系から構成されている場合には、各駆動軸に係るΔθi（ｉ＝１、２、・・・）のそれぞれに対応するＴPi（ｉ＝１、２、・・・）が決まり、場合によってそれらの中から選択する操作が必要となる（例えば、最大のものを選ぶ等。）。
【００８２】
以上のようにＴP値が求まると、［数１４］式に示すように、ＴP値をその基準値ＴPMINで割ることによってα値を決定することができる。
【００８３】
ランプ信号の折れ時間Ｔfの決定については、ランプ信号の傾斜部の傾きΩが制御対象の最高速（これを「ΩMAX」とする。）未満の場合にはＴf＝ＴPとし、Ω＝ΩMAXの場合には、「Δθ／Ｔf＝ΩMAX」から決まるＴf値とする。これを数式で表すと、下式のようにまとめることができる。
【００８４】
【数１５】
0003671505.tif 000017
【００８５】
従って、Ｔf値やＴP値の決定にあたっては、図１０（ａ）に示すようにθ−ｔ線図とΔθ−ＴP線図とを重ね合せたグラフ図を用いると便利である。即ち、横軸に時間ｔをとり縦軸にθをとってランプ信号を示すグラフ図と、横軸にＴPをとり縦軸にΔθをとって両者の関係を規定する特性線を示すグラフ図とを併せたものが図１０（ａ）である。
【００８６】
図中に太線で示す右上りの半直線ＳＬは、Ω＝ΩMAX、つまり制御対象に許される最大速度を示す特性線であり、ランプ信号の最大傾斜角φは半直線ＳＬの傾斜角とされる。つまり、ランプの傾斜部は、半直線ＳＬ上か又はその下側に位置するように規制される。
【００８７】
図では移動量がΔθa、Δθb、Δθc（Δθa＜Δθb＜Δθc）の３つの値をとる場合について示しており、Δθaの場合には、これに対応するＴP値がＴPMINであり、ランプ信号の傾斜部の傾きが半直線ＳＬの傾きより小さいことから明らかなようにＴf＝ＴPMINである。また、Δθbの場合には、これに対応するＴP値がＴP＝ＴP（Δθb）＝ＴPbであり、ランプ信号の傾斜部の傾きが半直線ＳＬの傾きより小さいことから明らかなようにＴf＝ＴPbである。そして、Δθcの場合には、これに対応するＴP値がＴP＝ＴPMAXであり、ランプ信号の傾斜部の傾きが半直線ＳＬの傾きに等しいので、Ｔf＝Δθc／ΩMAXとなり、Ｔf≠ＴPである。
【００８８】
よって、Δθ＝Δθaの場合のランプ信号は、図に点Ｏ（０，０）−点Ｐa（ＴPMIN，Δθa）−点Ｐa′（２・ＴPMIN，Δθa）に示すようになり、また、Δθ＝Δθbの場合のランプ信号は、図に点Ｏ（０，０）−点Ｐb（ＴPb，Δθb）−点Ｐb′（２・ＴPb，Δθb）に示すようになり、そして、Δθ＝Δθcの場合のランプ信号は、図に点Ｏ（０，０）−点ＰC（Ｔf（＝Δθc／ΩMAX），Δθc）−点ＰC′（Ｔf（＝Δθc／ΩMAX）＋ＴPMAX，Δθc）に示すようになる。また、Δθa、Δθb、Δθcのそれぞれの場合の加減速曲線を示すと図１０（ｂ）のようになり、ΔθaやΔθbの場合には、加減速曲線が加速部と減速部とからなり、Δθcの場合には、加減速曲線が加速部とΩ＝ΩMAXの定速部と減速部とからなる。図示するようにこれらの加減速曲線は減速期間においてゆっくりと停止に近づいていき、この事は点間移動制御における滑らかな停止制御を意味する。
【００８９】
尚、上記の説明は制御対象が一の駆動軸を有する構成であるとしたが、制御系が複数の駆動系から構成されている場合に、上記したＴP値やＴf値の決定方法を拡張することは容易である。
【００９０】
即ち、ｉ（＝１、２、・・・、Ｍ）番目の駆動軸について、ＴP値を「ＴPi」（ｉ＝１、２、・・・、Ｍ）とし、Ｔf値を「Ｔfi」（ｉ＝１、２、・・・、Ｍ）とするとき、これらの最大値を各駆動軸に共通のＴP値、Ｔf値として採用すれば良く、数式で表すと下式のようになる。
【００９１】
【数１６】
0003671505.tif 000018
【００９２】
尚、上式において「ｍａｘ（Ｘ１，Ｘ２，・・・）」は、変数Ｘ１、Ｘ２、・・・のうち大きい方を選び出すための関数である。
【００９３】
例えば、制御対象が２軸の構成となっている場合のＴP値やＴf値の決定法を示すと図１１のようになる。尚、図１１は図１０（ａ）と同様に、横軸に時間ｔをとり縦軸にθをとってランプ信号を示すグラフ図と、横軸にＴPをとり縦軸にΔθをとって両者の関係を規定する特性線を示すグラフ図とを併せて示したものであり、図中に太線で示す右上りの半直線ＳＬ１は、第１軸に係る最大速度（これを「Ω1MAX」とする。）を示す特性線であり、また、これより傾きの大きな半直線ＳＬ２は、第２軸に係る最大速度（これを「Ω2MAX」とする。）を示す特性線である。
【００９４】
Δθ−ＴP特性は軸毎に異なっており、図１１に示す折れ線Ｎ１（点ＭＩＮ１（ＴPMIN1，ΔθMIN1）、点ＭＡＸ１（ＴPMAX1，ΔθMAX1）は上下限をそれぞれ示す。）が第１軸に係る特性を示し、折れ線Ｎ２（点ＭＩＮ２（ＴPMIN2，ΔθMIN2）、点ＭＡＸ２（ＴPMAX2，ΔθMAX2）は上下限をそれぞれ示す。）が第２軸に係る特性を示している。尚、この例では、ΔθMIN2＝ΔθMIN1、ΔθMAX2＜ΔθMAX1、ＴPMIN2＜ＴPMIN1＜ＴPMAX2＜ＴPMAX1である。
【００９５】
第１軸に関する移動量を「Δθ1」とし、第２軸に関する移動量を「Δθ2」とすると、ＴP値については、図１１に示す例ではΔθ1に対応するＴP値（これを「ＴP1」とする。）と、Δθ2に対応するＴP＝ＴPMAX2とを比較することによって後者が選ばれ、また、Ｔf値については、第１軸に係るＴf1がＴP1に等しく、第２軸に係るＴf2がΔθ2／ΩMAX2となり、両者の比較からＴf2が選ばれることになり、下式のようになる。
【００９６】
【数１７】
0003671505.tif 000019
【００９７】
よって、第１軸に係るランプ信号は図１１の線分Ｏ−Ｐ１−Ｐ１′に示すようになり、また、第２軸に係るランプ信号は図１１の線分Ｏ−Ｐ２−Ｐ２′に示すようになる。尚、点Ｏは時間軸の原点（０，０）であり、点Ｐ１（Ｔf2，Δθ1）、点Ｐ１′（Ｔf2＋ＴPMAX2，Δθ1）、点Ｐ２（Ｔf2，Δθ2）、点Ｐ２′（Ｔf2＋ＴPMAX2，Δθ2）である。
【００９８】
このようにＴP値やＴf値の決定法を多数の駆動軸からなる制御対象に関して一般化することは容易である。
【００９９】
ところで、以上の説明ではランプ信号の傾きが制御対象に係る最大速度に対応する傾きを越えてはいけないという要請が常に満たされるものと仮定したが、実際の制御においては、このための何等かの手段が必要となる。
【０１００】
図１２は横軸に時間ｔをとり、縦軸に位置（又は位相角）θをとったものであり、特性線ＳＬの傾きが制御対象の最大速度ΩMAXに対応する。
【０１０１】
今、期間０≦ｔ≦ｔ１におけるランプ信号の時間軸に対する傾斜角をφとし、期間ｔ１≦ｔ≦ｔ２においてランプ信号が増分Δφ１をもって上向きに折れ曲がった後、期間ｔ２≦ｔにおいてランプ信号がさらに増分Δφ２をもって上向きに折れ曲がった場合を想定すると、傾斜角の増分Δφ１、Δφ２は制御対象に係る加速度に対応するものであり、これらは制御対象の最大加速度（これを「θMAX(2)」とする。）に対応する角度を越えてはいけないものである。
【０１０２】
即ち、傾斜角の増分に相当する加速度に対しては制御対象の最大加速度以下となるように制限する必要があるが、この制限だけでは、増分Δφの蓄積によって傾斜角の総和が特性線ＳＬの傾きを越えてしまう場合が生じ得るので、ランプ信号の傾斜、つまり速度についても制限が必要となる。
【０１０３】
そこで、図１３に示すように、加減速パターンの生成にあって仮想サーボ系を用いる場合には、指令手段２の送出する原信号Ｓに対して時間による１階の微分演算要素「ｄ／ｄｔ」を２つ直列に設けて速度θ(1)や加速度θ(2)を求めて、これらを比較演算要素「ＣＭＰ」においてそれぞれの最大値ΩMAX、θMAX(2)と比較してエラー信号を指令手段２にフィードバックし、原信号Ｓの傾きに補正を加えて信号Ｓ′（破線で示す。）を得るようにすれば、信号Ｓ′に係る速度θ(1)や加速度θ(2)がそれらの最大値を越えることがない。尚、このような議論は関数計算による加減速パターンの生成法に対しても容易に適用することができることは明らかである（微分演算要素とは関数の微分計算であり、比較演算要素とは差を求める計算に他ならないからである。）。
【０１０４】
以上に説明した点間移動制御に係る処理手順をまとめると以下のようになる。
【０１０５】
（１）制御対象の作用点を目的位置へと移動させるための制御指令値の算出
つまり、目標位置に係る情報と、制御対象の作用点の現在位置情報とに基づいて、両者間の差をゼロにするための制御指令値（Δθ）を計算する。
【０１０６】
（２）加減速曲線に係るピーク速度到達時間（ＴP）の決定
上記（１）の制御指令値と加減速曲線のピーク速度到達時間との関係を、例えば図９に示すように予め規定しておき、制御指令値に対応するピーク速度到達時間を決定する。
【０１０７】
（３）ランプ信号の折れ時間（Ｔf）の決定
即ち、ランプ信号に係る速度が制御対象に係る最大速度未満の場合にはランプ信号の折れ時間をピーク速度到達時間と同じ値とし、また、ランプ信号に係る速度が制御対象に係る最大速度の場合には、（１）の制御指令値を最大速度で割った時間をランプ信号の折れ時間とする。
【０１０８】
（４）時間軸伸縮用パラメータ値（α）の決定
ピーク速度到達時間をその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータαの値を決定する。
【０１０９】
（５）ランプ信号の生成
即ち、（１）の制御指令値や（３）の折れ時間に基づいてランプ信号を生成する。尚、場合によっては、速度や加速度については上述したような最大値による制限を考慮してランプ信号の傾斜を制御する必要が生じる。
【０１１０】
（６）加減速パターンの生成
つまり、（５）のランプ信号と、（４）の時間軸伸縮用パラメータに基づいて加減速曲線の山の高さや時間軸方向の幅を制御することにより加減速曲線を生成して、該加減速曲線に係る制御信号を制御対象に送出する。
【０１１１】
尚、上記（４）の手順は（２）の手順の直後に位置させても良い。
【０１１２】
また、指令信号としてステップ信号を用いる場合には、ランプ信号においてＴf＝０であるので、処理（３）が不要となり、処理（５）においてステップ信号が（１）の制御指令値のみにより生成される。
【０１１３】
点間移動制御における指令信号としてランプ信号を用いることの利点としては、下記のｉ）乃至ｉｉｉ）に示す制御を容易に実現することができることが挙げられる。
【０１１４】
ｉ）移動速度や移動時間に係る変更制御
ｉｉ）始点と終点の間に位置する途中の指定点の通過を省略して近道を選択する制御
ｉｉｉ）移動途中の停止や移動の再開に係る制御。
【０１１５】
ｉ）については、移動速度に係る変更制御と移動時間に係る変更制御とに分けて説明することができるので、先ず、前者について説明する。
【０１１６】
ピーク速度Ωの加減速曲線に係るピーク速度到達時間をＴPとし、最大速度ΩMAXの加減速曲線に係るピーク速度到達時間をＴPMとすると、ＴP≧ＴPMとＴP＜ＴPMとに場合分けすることができる。
【０１１７】
図１４はＴP≧ＴPMの場合において上段にランプ信号θREFの時間的変化を示し、下段に速度θo(1)の時間的変化を示すものである。
【０１１８】
ｔ−θREF図においてグラフ線ｇ１は、基準となるランプ信号（その折れ時間がＴf、ｔ＝ＴfにおいてθREF＝Δθである。）を示しており、これに対応する加減速曲線がｔ−θo(1)図におけるピーク速度Ω、ピーク速度到達時間ＴPのグラフ曲線ｈ１である。
【０１１９】
これに対して速度ΩをＰ％（パーセント）だけ小さくしたい場合、つまり、（１−Ｐ／１００）・Ω（これを「Ω′」とする。）にしたい場合には、ｔ−θREF図のグラフ線ｇ２に示すように、ランプ信号の折れ時間ＴfをＴf′（＞Ｔf）に示すように長くしてグラフ線の傾斜を小さくすれば良い。この結果、グラフ線ｇ２に対応する加減速曲線は、ｔ−θO(1)図におけるピーク速度Ω′、ピーク速度到達時間ＴPのグラフ曲線ｈ２となる。
【０１２０】
グラフ線ｇ１、ｈ１については、Ω＝Δθ／ＴP＝Δθ／Ｔfであり、移動時間を「Ｔall」とすると、Ｔall＝２・ＴPであることに注意すると、上記の速度変更によって変化する量Ω′、Ｔf′、そして移動時間（これを「Ｔall′」とする。）は、下式のようになる。
【０１２１】
【数１８】
0003671505.tif 000020
【０１２２】
上式の第２式は、Ｔall′が加速期間と減速期間との和である２・ＴPに定速期間、つまり、グラフ曲線ｈ１の定速部の面積を速度Ω′で割ったもの（これは図から明らかなように「Ｔf′−ＴP」に等しい。）を加算した値であることを示している。
【０１２３】
尚、この例では説明の便宜上、ピーク速度到達時間ＴPを変化させない方法を用いているが、必要に応じてＴPを変化させることができる。
【０１２４】
図１５はＴP＜ＴPMの場合において上段にランプ信号θREFの時間的変化を示し、下段に速度θo(1)の時間的変化を示すものであり、ｔ−θREF図においてグラフ線ｇ３が、基準となるランプ信号（その折れ時間がＴf、ｔ＝ＴfにおいてθREF＝Δθである。）を示しており、これに対応する加減速曲線がｔ−θo(1)図におけるピーク速度Ω、ピーク速度到達時間ＴPで定速部を含むグラフ曲線ｈ３である。
【０１２５】
これらに対して速度ΩをＰ％だけ小さくしたい場合、ｔ−θREF図のグラフ線ｇ４に示すように、ランプ信号の折れ時間ＴfをＴf′（＞Ｔf）に示すように長くしてグラフ線の傾斜を小さくすれば良い。この結果、グラフ線ｇ４に対応する加減速曲線は、ｔ−θo(1)図におけるピーク速度Ω′、ピーク速度到達時間ＴPで定速部を含むグラフ曲線ｈ４となる。
【０１２６】
グラフ線ｇ３、ｈ４については、Ω＝Δθ／Ｔfであり、移動時間がＴall＝ＴP＋Ｔfであることに注意すると、上記の速度変更によって変化する量Ω′、Ｔf′、そして移動時間Ｔall′は下式のようになる。
【０１２７】
【数１９】
0003671505.tif 000021
【０１２８】
上式の第２式において、Ｔall′がＴPとＴfとの和であることが明らかである。
【０１２９】
移動時間Ｔallに係る変更制御についてもＴP≧ＴPMの場合とＴP＜ＴPMの場合とに分けられ、前者の場合には基準となる加減速曲線についてＴall＝２・ＴP、Ω＝Δθ／ＴP＝Δθ／Ｔfが成立するので、移動時間ＴallをＰ％だけ短くしたい場合には、つまり新たな移動時間Ｔall′が下式［２０］のようになり、変更後のランプ折れ時間Ｔf′や速度Ω′が下式［数２１］のようになる。
【０１３０】
【数２０】
0003671505.tif 000022
【０１３１】
【数２１】
0003671505.tif 000023
【０１３２】
また、後者の場合には、基準となる加減速曲線についてＴall＝ＴP＋Ｔf、Ω＝Δθ／Ｔfが成立するので、移動時間ＴallをＰ％だけ短くしたい場合には、つまり新たな移動時間Ｔall′が下式［数２２］のようになり、変更後のランプ折れ時間Ｔf′や速度Ω′が下式［数２３］のようになる。
【０１３３】
【数２２】
0003671505.tif 000024
【０１３４】
【数２３】
0003671505.tif 000025
【０１３５】
このように指令信号としてランプ信号を用いた場合にはランプ信号の傾斜を動作制御の途中で上記のように変更することにより速度や移動時間を容易に変更することができる。但し、これはピーク速度到達時間ＴPを一定とする方法を採用する場合であり、ＴPを変更する場合には当然に時間軸伸縮用パラメータαも変える必要がある。
【０１３６】
上記ｉｉ）については、制御対象が、例えば、複数の駆動軸を有しており、これらの駆動軸を独立して制御することができるように構成されている場合に、各駆動軸の動作制御の開始時点と終了時点とで同期をとることなく、駆動軸の動作開始のタイミングを時間的にずらすようにした制御法である。
【０１３７】
つまり、図１６に概念的に示すように、制御対象が２つの駆動軸（モータを駆動源とする。）を有しており、各駆動軸に対するランプ信号をそれぞれθ1REF、θ2REFとした時（共通の折れ時間がＴfである。）、θ1REFについてはｔ＝０を起点としたランプ信号とし、θ2REFについてはｔ＝０から時間Ｔｄだけ遅れたランプ信号として、それぞれのランプ信号を各駆動軸に対応する仮想モータ系ＶＭ１、ＶＭ２にそれぞれに通すと、それらの出力として図示するようにＴｄの時間差をもった加減速曲線Ｌ１（ピーク速度Ω1）、Ｌ２（ピーク速度Ω2）が得られることになる（尚、図示した状況はピーク速度到達時間ＴP≧ＴPMの場合である。）。
【０１３８】
従って、例えば、２つの駆動軸θ１、θ２が互いに直交している場合を想定すれば容易に理解されるように（図１７参照。）、先に駆動軸θ１のみを動作させた後駆動軸θ２を動作させた場合には、制御対象の作用点が両軸の交点Ｏからθ１軸上の点Ａまで移動した後、θ２軸に対して平行に直進して点Ｂに到達し、また、駆動軸θ１とθ２とを同期させて動作させた場合には、制御対象の作用点が点Ｏと点Ｂとを結ぶ線分上を点Ｏから点Ｂに向かって移動されることになるが、上記のように駆動軸θ１を先に動作させてから時間Ｔｄを遅れをもって駆動軸θ２を動作させた場合には、制御対象の作用点が同図に破線Ｃで示すように、点Ｏ−Ａ−Ｂを指定して線分ＯＡＢ上を通る経路に対して点Ａの通過を回避した近道の経路に沿った移動が実現される。
【０１３９】
尚、この事を２以上の駆動軸を有する制御対象に対して拡張して適用することができることは明らかである。
【０１４０】
上記ｉｉｉ）については、ＴP値やＴfが決まった後に運動している制御対象を運動の途中で停止させた後、運動を再開させる場合に円滑な制御を行うことができることが理想的である。
【０１４１】
図１８は上段にランプ信号θREFの時間的変化を示し、下段に速度θo(1)の時間的変化を示すものであり、ｔ−θREF図において２点鎖線で示すグラフ線ｇ５が、途中停止を行わない場合のランプ信号（その折れ時間がＴfであり、ｔ＝ＴfにおいてθREF＝Δθである。）を示しており、これに対応する加減速曲線がｔ−θo(1)図におけるピーク速度Ω、ピーク速度到達時間ＴPで定速部を含むグラフ曲線ｈ５（図に２点鎖線で示す。）である（尚、この図はＴP＜ＴPMの場合である。）。
【０１４２】
また、ｔ−θREF図において実線で示すグラフ線ｇ６が、途中停止を行なった場合のランプ信号（点Ｑが停止点、点Ｓが再開始点である。）を示しており、これに対応する加減速曲線がｔ−θo(1)図に実線で示すグラフ曲線ｈ６、ｈ６である。
【０１４３】
図示するように、グラフ曲線ｈ５やｈ６、ｈ６における加速期間や減速期間の長さがＴPであり、これらの期間において滑らかな加減速制御が実現され、運動途中における停止時や運動の再開時に制御対象の動きがぎこちなくなるようなことがない。尚、この事は、途中停止の回数には関係なく常に成立し、また、２以上の駆動軸を有する制御対象に対しても容易に拡張することができることは勿論である。
【０１４４】
次に、経路指定制御について説明する。
【０１４５】
この経路指定制御は、指定された経路を示す曲線（以下、「指定曲線」という。）に沿って制御対象の運動制御を行うものであるが、この「指定曲線」には、曲線の方程式が知られているものと曲線の方程式が知られていないか又は与えられないものが含まれ、前者については、装置が事前に用意している曲線や、装置の使用者が所定のプログラム言語を用いて制御プログラムに記述することができる曲線等が挙げられ、後者については装置の使用者が教示した曲線（例えば、対象物の輪郭等をなぞったもの。）、あるいは、撮像手段等の検出手段によって得られる位置情報から割り出される曲線あるいは学習によって習得された曲線等が挙げられる。
【０１４６】
図１９は指定曲線について概念的に示すものであり、始点Ｓ、終点Ｅの曲線ＬＣ（全長を「Ｌ」とする。）に沿った制御対象の運動に際しては、曲線ＬＣ上の任意の点Ｐから制御対象の駆動機構の姿勢や状態を規定する必要がある。例えば、制御対象を２軸構成の多関節型ロボットに特定した場合には、同図に２点鎖線で示すように、第１アームａ１に対して回動可能に設けられた第２アームａ２の先端の作用端を曲線ＬＣに沿って移動させるために、曲線ＬＣ上の点Ｐから各アームａ１、ａ２に係る関節角θ１、θ２を求める必要がある。
【０１４７】
このようにロボットの手先位置から関節角を求める問題、つまり、ロボットの動作空間において直交座標系（Ｘ，Ｙ，Ｚ）を設定するとともに、ロボットの姿勢制御に係る関節角列（θ１，θ２，・・・）を座標成分とする関節座標系を設定した時、直交座標系における点（Ｘ，Ｙ，Ｚ）からこれに対応する関節座標系の点の座標（つまり、関節角列）を求める問題は逆運動学問題として知られており、これに対して、関節角列からロボットの手先位置を求める問題、つまり関節座標系における点（θ１，θ２，・・・）からこれに対応する直交座標系の点の座標（Ｘ，Ｙ，Ｚ）を求める問題は順運動学問題として知られている。
【０１４８】
図２０は、逆運動学問題に係る計算の具体例について説明するために、制御対象を２軸構成の多関節型ロボットに特定し、該ロボットを平面で見たときの構成を略線的に表現したものである。
【０１４９】
図中、ロボットＲＢは第１アームａ１と第２アームａ２とを有し、第１アームａ１の回動中心Ｏを原点とする２次元の直交位置座標系（Ｘ，Ｙ）が設定されており、点ＥＥ（Ｘ，Ｙ）がロボットの作用端の位置を示している。尚、点ＥＥの位置ベクトルをＲとすると、この場合Ｒ＝（Ｘ，Ｙ）であるが、一般には、Ｒ＝（Ｘ，Ｙ，Ｚ）である。
【０１５０】
また、点Ｏ′は第２アームａ２の回動中心であり、線分ＯＯ′の長さ（これを「Ｌ1」とする。）が第１アームａ１の長さを示し、線分Ｏ′ＥＥの長さ（これを「Ｌ2」とする。）が第２アームａ２の長さを示している。
【０１５１】
そして、「θi（ｉ＝１、２）」は、各駆動軸に係る関節角を表しており、角度「θ1」は線分ＯＯ′がＸ軸に対してなす角度、角度「θ2」は線分Ｏ′ＥＥが線分ＯＯ′の延長線に対してなす角度をそれぞれ示している。
【０１５２】
図２１は現時点におけるロボットの作用端が点Ｐs（Ｘs，Ｙs）に位置にあり、これを目標点Ｐe（Ｘe，Ｙe）まで移動させる場合にロボットの関節角をどれだけ変化させれば良いかについて説明するための概略図である。
【０１５３】
現時点におけるロボットの関節角はθ1＝Θ1s、θ2＝Θ2sであり、また、図中の点Ｐxは、点Ｏと中心として線分ＯＰeの長さ（これを「Ｒx」とする。）を半径とする円弧ＣＲ１と、点Ｏ′を中心として線分Ｏ′Ｐsの長さ（これを「Ｒs」とする。）を半径とする円弧ＣＲ２との交点のうち点Ｐeに近い方の点を示している。そして、角度「θ2X」は線分ＯＯ′の点Ｏ′側への延長線と線分ＰxＯ′との間になす角度であり、１８０°から∠ＰxＯ′Ｏの角度を引いたもの等しい。また、角度「φ」は∠ＰxＯＯ′の角度、角度「θ」は線分ＯＰeがＸ軸に対してなす角度をそれぞれ示している。
【０１５４】
上述した諸量の定義をまとめると下表のようになる。
【０１５５】
【表２】
0003671505.tif 000026
【０１５６】
目標点Ｐeの座標値からロボットの関節角（正確にはその変化量）を求めるには、先ず、三角形ＯＯ′Ｐsについて余弦定理を適用することでΘ2sを算出した後、三角形ＯＯ′Ｐxに関する余弦定理の適用によりθ2Xを求め、両者の差である第２アームの関節角θ２の変化量Δθ2＝θ2X−Θ2sを計算する。それから、同様にしてφを求めた後、ｔａｎθ＝Ｙe／Ｘeの関係からθを逆関数で表して、第１アーム係る関節角θ1の変化量Δθ1＝θ−（φ＋Θ1s）を計算すると、下式に示す結果が得られる（その途中計算は省略する。）。
【０１５７】
【数２４】
0003671505.tif 000027
【０１５８】
尚、上式において「ａｔａｎ（）」は正接関数の逆関数、「ａｃｏｓ（）」は余弦関数の逆関数をそれぞれ示している。
【０１５９】
上記した幾何学的な解法は、ロボットの構成がいかなるものであっても一連の手順に従うことを条件に［数２４］式に示すような公式を導出し得るものであり、タイプの異なるロボット（例えば、直交型ロボット、多関節型ロボット、円筒座標型ロボット等）に共通に用いることのできるアルゴリズムを提供することは設計の標準化等にとって好ましい。また、逆運動学問題においては一般に複数個の解が存在するが（図２０においてアームａ１、ａ２を線分ＯＥＥに関して反転させれば、これもまた解であることから明らか。）、関節角の変化量ができるだけ少ない解を選ぶことがエネルギー消費や移動時間等の点で望ましい。
【０１６０】
尚、上記のような計算例から逆運動学問題の一端をうかがい知ることができるが、順運動学問題がある種の座標変換計算程度で解けるのに対して、逆運動学問題が上記のように解析的に解けるのは一般には限られた場合である。
【０１６１】
以下では、上記の概念を一般の制御対象に拡張し、制御対象の動作空間又は状態空間において直交座標系又は斜交座標系等の空間座標系を設定するとともに、制御対象の姿勢や状態等の配位を記述する座標成分によって特定される配位座標系を設定した時、空間座標系における点や当該点での時間微分量（速度等）からこれに対応する配位座標系の点の座標や時間微分量（速度等）を求める問題を「正準化された逆問題」と呼び、これに対して、配位座標系における点や時間微分量（速度等）からこれに対応する空間座標系の点の座標や時間微分量（速度等）を求める問題を「正準化された順問題」と呼ぶことにする。尚、「正準化」とは、位置や姿勢、状態の座標表示に係る変数の個性を問わない（例えば、変数Ｘについてそれが距離や角度であるのか速度や角速度であるのかには関心がない。）ことを意味する。また、このような概念の拡張を行った場合でも本発明の実現に悪影響を及ぼすことにはならないことを付言しておく。
【０１６２】
さて、［数２４］式と、図１９に示した曲線ＬＣとの関係について説明すると、曲線ＬＣ上の点Ｐが上記した点Ｐeに相当し、点Ｐの近傍であって点Ｓ寄りに位置する点Ｐ′が上記した点Ｐsに相当する。即ち、曲線ＬＣ上における現在位置を示す点Ｐ′から次の目標点Ｐまでにロボットの作用端を移動させるには、上記［数２４］式に基づいて関節角をどれだけ変化させれば良いかを計算すれば良く、このことは点Ｐ′が始点Ｓに一致する場合や点Ｐが終点Ｅに一致する場合にも何等変わることがない。
【０１６３】
曲線ＬＣは、３次元直交座標系を設定した場合に、その上の任意の点Ｐの位置ベクトルをｒ＝（ｘ，ｙ，ｚ）とし、点Ｓから点Ｐまでの曲線長を示すパラメータ「ｌ」（０≦ｌ≦１）を導入することによって「ｒ＝Ｆｌ（ｌ）」（但し、「Ｆｌ（）」はベクトル関数であり、Ｆｌ（０）が点Ｓの座標、Ｆｌ（１）が点Ｅの座標を示す。）のようなパラメトリック表現が可能である。
【０１６４】
尚、曲線ＬＣに係る連続関数を用いた表現はデジタル信号処理にとって不便であり、逆運動学問題に係る計算量や時間が膨大になることは容易に予測されるので、図１９に示すように曲線ＬＣを長さ「ΔＬ」によって等分割し、曲線ＬＣ上に有限個の代表点（これを「Ｐi」（ｉ＝１、２、・・・）とし、識別数字ｉは始点Ｓから終点Ｅにいくにつれて増加するように選ぶ。）を設定し、隣接点間の線素列を直線（あるいは２次曲線等の計算程度の低い曲線）で近似すれば、点Ｐiの指定を整数値で行うことができ、かつ点Ｐiに係る逆運動学問題の計算量を低減することができる。
【０１６５】
よって、以下では、上記のような曲線ＬＣの離散化表現に基づいた経路指定制御について説明するが、指定される経路がこのようなディジタル信号処理に適するもののみに限定される訳ではなく、あくまで説明の便宜にすぎないことに注意を要する。
【０１６６】
図２２は経路指定制御に係る装置の構成を示すものであり、みかけ上は図１に示した点間移動制御に係る装置の構成と全く同じである。即ち、メモリ内に展開された指令値に対して、メモリ番地を指すポインタＰの制御によって指令値が順次に取り出されて加減速パターン生成手段３を介して制御対象に送出され、加減速パターン生成手段３は上記した点間移動制御に係る手段と同じである。
【０１６７】
しかしながら、点間移動制御の場合とは下記に示す相違点がある。
【０１６８】
１）メモリに格納される指令値が、正準化された逆問題の解である点
２）ポインタＰの操作（切り換え）が一定時間間隔で行われるとは限らない点。
【０１６９】
先ず、１）について説明すると、例えば、制御対象をロボットに特定した場合に、ΔＬによって分割された点Ｐi（ｉ＝１、２、・・・）に対応する関節角列が得られるが、ロボットを構成するある駆動軸に注目すると、点Ｐiに対応する関節角の変化量（正確には長さΔＬの線素列に対応する変化量であり、これを「δΘi（ｉ＝１、２、・・・、Ｎ）とする。）が［数２４］式で示したような計算によって得られることになり、これらが識別数字ｉの増加に従ってｉ番地のメモリに格納される。
【０１７０】
そして、図２２に示すような制御構成はロボットの駆動軸毎に存在しており、これらのポインタの初期状態を各メモリの１番地に設定した後あるタイミングをもって全てのポインタを同期的に操作すれば、ポインタＰのインクリメントによってポインタＰがδΘiを次々と指すことになり、その内容＊Ｐ（つまり、δΘi）を取り出すことができる。
【０１７１】
このような操作を各駆動軸について行えば、ポインタＰの指す指令値が加減速パターン生成手段３を介して制御対象に送出され、ポインタＰの指す指令値がなくなった後に、ロボットの作用端が曲線ＬＣの終点Ｅに到達することになる。尚、加減速パターンの生成にあたっては、各駆動軸について関節角δΘiに応じて加減速曲線に係るピーク速度到達時間ＴPの値を求め、これをその基準値で割ることによって時間軸伸縮用パラメータαの値を求めた上で加減速曲線の山の高さや時間軸方向の幅を変化させるという前記点間移動制御の場合と同じ手続に従う。
【０１７２】
次に上記２）についてはポインタ操作にある種の変調制御を行うことがあり得るので、以下では経路指定制御を意図する者が、指定曲線に沿う運動の精度を重要視するか、またはそれより速度を重要視するかによって制御方法につき下記に示すような場合分けを行うことにする。
【０１７３】
２−１）精度指示に係る制御法
即ち、指定曲線に沿って制御対象が運動しているか否かの目安となる精度（これを「ε」とする。）に対して精度指定値（これを「εCP」とする。）を指示することができる機能であり、経路指定制御中の精度が常に「ε≦εCP」を満たすように制御する方法である。この場合には、制御中の速度が指定曲線上の場所々で異なることになり、例えば、曲率の大きい場所で低速となり、曲率の小さな場所で高速となるような制御となる。
【０１７４】
２−２）速度指示に係る制御法
経路指定制御では、加減速曲線における定速部の速度に対して指定値（これを「ＶCP」とする。）を指示することができる機能も必要であり、加減速期間を除いた期間における速度を一定に保ちたい場合がある。この場合には、上記εCPの指示を行うことはできず、また、制御中の精度εが指定曲線上の場所々で異なることになる。
【０１７５】
尚、この他、２−１）と２−２）とを組み合せる方法（例えば、両者に対して重み付けを行う方法。）が考えられるが、経路指定制御を意図する者がパラメータ指定時に判断の迷いが生じるような要素を排除したアルゴリズムを採用することが使い易さの点で好ましい。
【０１７６】
先ず、２−１）について説明する。
【０１７７】
精度指定にあたっては「精度」の定義を明らかにする必要があるが、例えば、指定曲線ＬＣの回りに半径εCPの円管を想定して、曲線からのズレ量εが常にこの円管内に入るように制御する方法や、円管の代わりの四角筒を想定する等、各種の方法が考えられるので、以下では、ある定義下において規定される精度εに対して指定値εCPの指示ができることを前提とする。つまり、位置に係る精度の定義の如何によって以下の議論についての一般性は失われない。
【０１７８】
図２３は制御構成の概要を示すものであり、加減速パターンの生成手段としては前記した仮想サーボ系による方法が用いられている。
【０１７９】
正準化された逆問題の解が指令値としてメモリ内に展開され、これらがポインタ操作によって、仮想サーボ系に送出された後、現実のサーボ系に送出される。仮想サーボ系は現実のサーボ系と同じ周波数特性を有するものであり、点間移動制御に係るものと同一である。尚、図では１系統の制御系のみを示しているが、制御対象が複数の駆動軸から構成されている場合には、図中の仮想サーボ系及びサーボ系が各駆動軸に係る制御系の全てを代表する。
【０１８０】
精度算出手段５は、現実のサーボ系の出力から精度εを算出するために設けられている。尚、この計算にあたっては正準化された順問題の解法に従って配位座標系で表現される誤差量を空間座標系での表現に変換する必要があることに注意する。例えば、制御対象をロボットに特定すると、駆動軸に係る現実のサーボ系の出力とは関節角を意味し、その誤差ｄΘ（正確にはベクトル量）を直交座標系での位置誤差εに換算する。このような変換がないと指定者は関節角に係る精度の指定値を指示しなければならない。
【０１８１】
精度判断手段６は、上記精度算出手段５によって得られた誤差と指定値εCPとを比較し、比較結果に応じてポインタＰを進めたり停止させてポインタ指定による指令値の読み出しのタイミングを制御する。尚、指定値εCPは精度入力／設定手段７から精度判断手段６に対して送られる。
【０１８２】
図２４及び図２５は処理の流れを示すフローチャート図であり、先ず、ステップＳ１において曲線ＬＣの指定や精度の指定値εCPの入力又は設定を行う。
【０１８３】
ステップＳ２において曲線ＬＣに対する線素列の分解により得られる点Ｐi（ｉ＝１、２、・・・）に対して正準化された逆問題の解法を適用して計算結果δΘi（ｉ＝１、２、・・・）をメモリに格納する。
【０１８４】
曲線ＬＣの指定の仕方には各種の方法があるが、例えば、図２６に示すように装置の使用者は、制御対象の作用点が通過点Ｑi（ｉ＝１、２、・・・、Ｍ）を必ず通過させたいが、これらの通過点の間については隣接点間を結ぶ線分の近くを通過すれば良いと考えるような経路指定制御を望む場合には、先ず、経路の全長Ｌを下式［数２５］のように求めた後（つまり、隣接点間を直線とみなす。）、これをメモリ数Ｎで割って線素長ΔＬ＝Ｌ／Ｎを求める。
【０１８５】
【数２５】
0003671505.tif 000028
【０１８６】
そして、Ｑ1を始点とし点ＱＭを終点とする折れ線をΔＬによって一様に分割するのが簡単であるが、これでは、通過点Ｑiが分割点に含まれないことになるため、通過点Ｑiとその隣接点Ｑi+1とを結ぶ線分毎に線素長ΔＬを変える（これを「ΔＬi」とする。）ことにし、線分ＱiＱi+1の長さＬiを上記ΔＬで割った値の整数部を「Ｎi」、小数部を「ｎi」としたとき、ΔＬiを下式のように算出する。
【０１８７】
【数２６】
0003671505.tif 000029
【０１８８】
尚、上式において関数Ｙ＝ｒｏｕｎｄ（Ｘ）は、実数Ｘの小数部について四捨五入を行って整数値Ｙを求めるものである。
【０１８９】
つまり、隣接する通過点を結ぶ線分毎に異なる線素長ΔＬiにより分割がなされ、例えば、図２７に示すように、点Ｑiと点Ｑi+1とを結ぶ線分がΔＬiによって等分割されるので、通過点が分割点から外れることがない。
【０１９０】
従って、分割点のそれぞれについて上記の正準化された逆問題の解法に従って制御対象の作用点の位置座標を計算し、これを折れ線を構成する全線分について行ってそれぞれの計算結果をメモリに順次に格納すれば、指定曲線に対応した位置指令値を得ることができる。
【０１９１】
尚、メモリ数Ｎが大きい場合に、ΔＬi≒ΔＬとなる。また、上記のように点Ｑiと点Ｑi+1との間を直線で結んだ折れ線状の指定曲線を指定した場合に、これをそのまま現実のサーボ系に送出すると制御対象の運動がぎこちないものとなる虞があるが、折れ線状の指定曲線は仮想サーボ系のフィルタリング作用によって角のとれた曲線となるようにスムージングの作用を受けた後現実のサーボ系に送られることになる。
【０１９２】
図２４のステップＳ３において、仮想サーボ系の初期化（つまり、仮想サーボ系の基準系への設定や制御対象に係る現在位置の設定等）やポインタＰの初期化（つまり、ポインタＰがメモリの１番地を指すようにＰ＝１とする。）を行った後、ステップＳ４において、ポインタＰの指すメモリ内容（＊Ｐ）を取り出して仮想サーボ系に送出し、このときの仮想サーボ系の出力を現実のサー系に出力する。
【０１９３】
そして、ステップＳ５でのポインタＰのインクリメント（Ｐ→Ｐ＋１）の後に、ステップＳ６においてポインタＰがメモリ番地の上限Ｎに達したか否かによって条件分岐を行い、Ｐ＝ＮであればステップＳ７に進み、ポインタ操作を終了する（但し、仮想サーボ系の出力の現実のサーボ系への送出が停止される訳ではなく、暫くの間継続される。）。
【０１９４】
また、Ｐ＜Ｎの場合には図２５のステップＳ８に進み、ここで現実のサーボ系から誤差ｄΘを取り出してこれを精度算出手段５に送出する。
【０１９５】
そして、次ステップＳ９において、正準化された順問題の解法に従って誤差ｄΘを空間座標系での誤差εの表現に変換する。例えば、制御対象をロボットに特定した場合に、モータを駆動源とする複数の駆動軸によってロボットが構成されているとすると、ｄΘはモータ系における位相誤差を駆動軸の全て配列したベクトル量であり、関節角に係る誤差を表しており、これらに対応するロボットの作用端に係る位置誤差に変換する計算は一般に容易である（例えば、図２０のような２軸構成のロボットでは、θ1、θ2を与えたときに作用端の位置のＸ座標値やＹ座標値を簡単に求められる。）。
【０１９６】
このようして誤差εに関する空間座標系での表現を得た後に、ステップＳ１０では、精度判断手段６がεと指定値εCPとを比較し、ε≦εCPであればステップＳ１１に進み、ε＞εCPであればステップＳ１４に進む。
【０１９７】
ステップＳ１１ではポインタＰの指すメモリ内容（＊Ｐ）を取り出してこれを仮想サーボ系に入力した後、次ステップＳ１２で仮想サーボ系の出力を現実のサーボ系に出力し、ステップＳ１３においてポインタＰのインクリメントを行った後ステップＳ６に戻る。
【０１９８】
また、ステップ１４ではポインタＰの指すメモリ内容（＊Ｐ）を取り出してこれを仮想サーボ系に入力した後、次ステップＳ１５で仮想サーボ系の出力を現実のサーボ系に出力し、ポインタＰのインクリメントを行わずに図２４のステップＳ６に戻る。
【０１９９】
以上のように、精度εが指定値εCPを越えた場合にはポインタＰを停止させることによって精度εが指定値内に常に収まるように制御を行っている。
【０２００】
図２８はその様子を概念的に示すものであり、横軸に離散化された時間Ｔｋをとり、縦軸にポインタＰをとってその時間的変化を示している。
【０２０１】
同図において、実線で示す折れ線において時間軸に平行な部分８ａ、８ａ、・・・がε＞εCPの場合であり、傾斜をもった部分８ｂ、８ｂ、・・・がε≦εCPの場合である。尚、破線で示す直線は点間移動制御におけるポインタＰの時間的変化を示しており、ポインタ操作が一定期間毎に行われることから明らかなようにその増加率が一定である。
【０２０２】
尚、メモリ内容は上記折れ線に沿って取り出されて仮想サーボ系に送出されることなるが、仮想サーボ系の出力がこのような折れ線状のぎくしゃくしたものになる訳ではない。つまり、仮想サーボ系のフィルタ特性によってその出力が円滑化されることは、前記した点間移動制御においてランプ信号を仮想サーボ系に入力した場合にその出力が滑らかな関数（［数７］式参照。）となることから容易に理解される。よって、制御対象に異音や不要振動等が生じる慮はない。
【０２０３】
また、このような精度の制御は、前記した点間移動制御においても使用することができる。例えば、図２９に示すように、点Ｐ０、Ｐ１、Ｐ２をこの順に指定するとともに、点Ｐ０と点Ｐ１との間の通過点に対して当該点を中心とする直径ε１の精度範囲（これを、「精度球」と呼ぶ。尚、２次元では円である。）を設定し、また、点Ｐ１と点Ｐ２との間の通過点に対して当該点を中心とする直径ε２の精度球を設定すると、点Ｐ０から制御を開始して制御対象の作用点が、ある代表点に係る精度球内に入るまでポインタＰのインクリメントを待たせておき、作用点が精度球内に入った時にポインタＰのインクリメントを行って次の通過点を目標として作用点を移動させるように制御すれば良い。これによって点Ｐ１に対しては精度ε１をもって、また、点Ｐ２については精度ε２をもって制御対象の作用点を停止させることなく指定点を通過させることができるので、指定点における作業内容に応じた精度の可変制御が可能となる（例えば、検査工程のように高い位置精度を要求される場合にこのような制御が必要とされる。）。
【０２０４】
尚、上記の説明ではメモリ数Ｎの決定の仕方については触れなかったが、メモリ数Ｎの大小は、制御対象の運動の滑らかさを決める上で重要な要素であり、εCPが小さい場合には線素長ΔＬを小さくする必要があり、逆にεCPが大きくても良い場合には線素長ΔＬが大きくなることは明らかである。そこで、ΔＬとεCPとの比の値を示すパラメータ「Ｒε」（＝ΔＬ／εCP）を導入し、これを仮想サーボ系や現実のサーボ系の特性、制御対象の機械的な特性等を考慮して実験的に決定すれば、メモリ数ＮをＮ＝Ｌ／ΔＬ＝Ｌ／（εCP・Ｒε）によって算出することができる。従って、精度の指定値εCPに応じて上式によりメモリ数Ｎを適時に決定するアルゴリズムを用いれば、制御対象の運動の円滑さを保証することができる。尚、この事は前記した点間移動制御についてもそのまま適用することができることは勿論である。
【０２０５】
次に上記の事項２−２）について説明する。
【０２０６】
経路指定制御における速度の指定値ＶCPは、装置の使用者が何等かの教示手段によって入力したり、プログラム言語によって制御プログラム中に記述することで与えられる。
【０２０７】
また、速度に対する精度指定を行なえるような構成にすると、指定値ＶCPに対して所定の精度内で制御対象の運動速度を制御することができるので便利である。そこで、速度の精度を「εV」とし、その指定値を「ΔＶCP（＜ＶCP）」としたときεVを百分率で指定することができるように「εV＝１００・ΔＶCP／ＶCP」で定義する。つまり、εV＝０のときに最も精度が良く、εV＝１００のときに最も精度が低いことになり、εVの指定については装置の使用者が教示手段等によって与えることができ、またはこのような指定がない場合には予め決められた値が自動的に設定される。尚、上記のような精度の定義は一例に過ぎず、これによって以下の議論の一般性が失われるわけではない。
【０２０８】
図３０は制御構成の概要を示すものであり、加減速パターンの生成手段としては前記した仮想サーボ系による方法が用いられている。
【０２０９】
正準化された逆問題の解が指令値としてメモリ内に展開され、これらがポインタ操作によって、仮想サーボ系に送出された後、現実のサーボ系に送出される。仮想サーボ系は現実のサーボ系と同じ周波数特性を有するものであり、点間移動制御に係るものと同一である。尚、図では１系統の制御系のみを示しているが、制御対象が複数の駆動軸から構成されている場合には、同図の仮想サーボ系及びサーボ系が各駆動軸に係る制御系の全てを代表する。また、メモリ内の指令値δΘiの右上に付した「＊」は後述する補正計算の影響を被ることを意味している。
【０２１０】
速度換算手段９は、現実のサーボ系の出力に基づいて作用端の速度を算出するために設けられている。尚、この計算にあたっては正準化された順問題の解法に従って配位座標系で表現される速度を空間座標系での速度の表現に変換する必要があることに注意する。例えば、制御対象をロボットに特定すると、駆動軸に係る関節角の速度Θ(1)（正確には速度ベクトルの列）を直交座標系での速度Ｖ（ｘ，ｙ，ｚ）に換算する。
【０２１１】
速度判断手段１０は、上記速度換算手段９によって得られた速度と、その指定値ＶCP及び精度指定値εVにより定まる基準値とを比較し、比較結果を後段の線素長計算手段１１に送出する。尚、指定値ＶCP及び精度指定値εVは速度入力／設定手段１０′から速度判断手段１０に送られる。
【０２１２】
線素長計算手段１１は上記比較結果に応じて指定曲線長Ｌの分割単位である線素列の長さΔＬに係る計算を行ない、その結果を補正計算手段１２に送出する。
【０２１３】
つまり、線素長計算手段１１によって得られたΔＬの長さが当初の値と異なる場合には、指定曲線ＬＣに対する区分の仕方が異なることを意味し、指定曲線ＬＣの分割点Ｐiが違って来るため、そのための補正計算を行なうとともに、分割点Ｐiに対して正準化された逆問題の解法を適用して新たな指令値を計算してメモリ内容を更新する。また、補正計算手段１２はポインタの操作を行うが、ポインタの切り換えは点間移動制御の場合と同様に所定のサンプリング周期Ｔs毎に定期的に行われる。
【０２１４】
速度指定の制御に際しては、下記に示す諸量が必要である。
【０２１５】
ａ）速度の指定値ＶCP及び速度精度の指定値εV
ｂ）制御の所要時間（これを「Ｔｔ」とする。）
ｃ）必要なメモリ数Ｎ
ｄ）線素列の長さΔＬ。
【０２１６】
ａ）については上述したように教示手段やプログラム中の記述によって与えられ、また、ｂ）の所要時間Ｔｔについては指定曲線ＬＣの長さＬをＶCPで割ることで計算する（Ｔｔ＝Ｌ／ＶCP）。
【０２１７】
そして、ｃ）のメモリ数Ｎは、上記Ｔｔ及びサンプリング周期Ｔsから「Ｎ＝Ｔｔ／Ｔs＝Ｌ／（ＶCP・Ｔs）」により計算する（正確にはメモリ数Ｎが整数値であることから、（[Ｎ]＋１）個のメモリ数が必要である。）。
【０２１８】
ｄ）については、曲線長Ｌをメモリ数Ｎで割ることによって線素列の長さΔＬ（つまり、１サンプリング周期Ｔsにおける移動距離）を下式のように算出する。
【０２１９】
【数２７】
0003671505.tif 000030
【０２２０】
尚、このΔＬは速度精度εV＝０の場合の値であり、±εVの精度が指定された場合のΔＬ（＋εVの場合を「ΔＬ+」とし、−εVの場合を「ΔＬ-」とする。）は下式のようになる。
【０２２１】
【数２８】
0003671505.tif 000031
【０２２２】
図３１は横軸に時間ｔをとり、縦軸に移動距離ＬＬをとって［数２７］及び［数２８］式に示す内容について説明するためのものであり、図中に実線で示す右上りの直線１３ａは、［数２７］式の両辺をｉ（整数）倍するとともにｉ・Ｔs→ｔ、ｉ・ΔＬ→ＬＬの置き換えを行なって得られ、速度精度εV＝０の場合の変化を示している。また、該直線の上側に位置する１点鎖線の直線１３ｂは、［数２８］式の第１式に対して上記と同様の操作を行なって得られるものであり、速度精度が＋εVの場合の変化を示し、また、直線の下側に位置する２点鎖線の直線１３ｃは、［数２８］式の第２式に対して上記と同様の操作を行なって得られるものであり、速度精度が−εVの場合の変化を示している。
【０２２３】
経路指定制御における実際の速度を「Ｖ」とすると、ＬＬ＝Ｖ・ｔに示す直線は上記の３直線によって区分される４領域のうちのいずれかに属することになる。尚、図では領域（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）が下式に示すように分けられている。
【０２２４】
【数２９】
0003671505.tif 000032
【０２２５】
尚、このような領域は速度判断手段１０における速度の判断時に必要となる。
【０２２６】
図３２及び図３３は処理の流れを示すフローチャート図である。尚、本図については、位置指令値をメモリに展開してポインタ操作を行う方式ではなく、指令値を実時間処理によって逐次に計算で求めていく方式に従って説明する。つまり、本制御では、上記した２−１）のように最初に正準化された逆問題の解を求めてメモリに記憶させてからポインタ指定により指令値を取り出すのではなく、正準化された逆問題の解を逐次に計算してこれを仮想サーボ系に送出する（図３０に示したメモリの一つずつが逆問題の計算処理を示し、ポインタＰの操作がサンプリング周期Ｔs毎の時間の経過を示すものであると考えることができる。）。
【０２２７】
先ず、図３２のステップＳＳ１において指定曲線ＬＣに係る指定や速度指定値ＶCP、精度指定値εVの入力又は設定を行なった後、ステップＳＳ２において上記Ｔｔ、Ｎ、ΔＬ等を算出する。
【０２２８】
次ステップＳＳ３において、仮想サーボ系の初期化（つまり、仮想サーボ系の基準系への設定や制御対象に係る現在位置の設定等）や、サンプリング周期Ｔsによって標本化された時間軸（これを「ｔ＝ｋ・Ｔs（ｋ＝０、１、２、・・・）」とし、以下、この「ｋ」を「離散化時刻」と呼ぶ。）の初期化（ｋ＝０）等、制御に必要な事前処理を行う。
【０２２９】
そして、ステップＳＳ４では、離散化時刻ｋ＝１に対応する指定曲線上の点Ｐi（ｉ＝１、２、・・・）について逆問題計算を行なった結果を仮想サーボ系に送出し、該仮想サーボ系の出力を現実のサーボ系に送る。
【０２３０】
ステップＳＳ５では、制御対象の運動の終了、つまり、作用端等が指定曲ＬＣの終点Ｅまで達したか否かを判断し、終点Ｅに達したならば、ステップＳＳ６で位置指令を終了し（但し、仮想サーボ系の出力の現実のサーボ系への送出が停止される訳ではなく、これは暫くの間継続される。）、終点Ｅに達していなければ図３３のステップＳＳ７に進む。
【０２３１】
ステップＳＳ７では、離散化時刻ｋにおける実際の速度Ｖを算出する。即ち、現実のサーボ系からの速度や角速度情報に基づいて速度換算手段９が、正準化された順問題の解法に従って配位座標系での速度Θ(1)を空間座標系での速度Ｖに変換する。例えば、制御対象をロボットに特定した場合に、モータを駆動源とする複数の駆動軸によってロボットが構成されているとすると、Θ(1)は全駆動軸に係るモータの角速度を配列したベクトル量であり、関節角速度を表しており、これらに対応するロボットの作用端の速度Ｖを計算する。
【０２３２】
そして、ステップＳＳ８において速度ＶをＶCP及びεVにより規定される基準値と比較して４通りの多重分岐を行う。即ち、速度Ｖが図３１に示した領域（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）のどれに属するかを判断し、それぞれの場合に応じてステップＳＳ９、ＳＳ１０、ＳＳ１１、ＳＳ１２に進む。
【０２３３】
領域（Ａ）に対応するステップＳＳ９では、Ｖ＜ＶCP・（１−εV／１００）であり、速度Ｖが予定値より遅いと判断して速度指令値をＶCP・（１＋εV／１００）に修正する。この結果線素長はΔＬ+（［数２８］式参照。）とされる。
【０２３４】
また、領域（Ｂ）に対応するステップＳＳ１０では、ＶCP・（１−εV／１００）≦Ｖ≦ＶCPであり、速度Ｖが許容範囲内であると判断して速度指令値をＶCPのままとする。つまり、線素長はΔＬである。
【０２３５】
領域（Ｃ）に対応するステップＳＳ１１では、ＶCP≦Ｖ≦＜ＶCP・（１＋εV／１００）であり、速度Ｖが許容範囲であると判断して速度指令値をＶCPのままとする。つまり、線素長はΔＬである。
【０２３６】
領域（Ｄ）に対応するステップＳＳ１２では、Ｖ＞ＶCP・（１＋εV／１００）であり、速度Ｖが予定値より速いと判断して速度指令値をＶCP・（１−εV／１００）に修正する。この結果線素長はΔＬ-（［数２８］式参照。）とされる。
【０２３７】
ステップＳＳ１３では、上記ステップＳＳ９乃至ＳＳ１２によりそれぞれ決定された線素長に従って指定曲線ＬＣを分割するとともに、当該分割後に得られる曲線上の次の指定点Ｐに対して正準化された逆問題解法の適用によって解を計算する。そしてステップＳＳ１４では、その結果を仮想サーボ系を介して現実のサーボ系に送出した後、ステップ１５において離散化時間ｋのインクリメント（ｋ−＞ｋ＋１）を行なってから図３２のステップＳＳ５に戻る。
【０２３８】
以上のように、ステップＳＳ７乃至ＳＳ１４の処理は離散化時刻ｋが１ずつ増加する毎に行われることになり、図３４のｔ−ＬＬ図に示すように目標速度ＶCPに対応する直線（実線で示す。）に対して、実際の速度Ｖは破線のグラフ曲線１４に誇張して示すように、実線の直線に近づくべく絶えず修正を受けることになる。尚、この間、速度Ｖが制御対象について許容される上限値以下となっていることのチェックを行う必要があることは勿論である（そうでないと、制御対象の破壊や予期せぬ動作等が惹き起こされる虞が生じる。）。
【０２３９】
以上に説明した経路指定制御に係る処理手順をまとめると以下のようになる。
【０２４０】
（１）指定曲線の指定や精度、速度の指令値の入力又は設定
つまり、指定曲線の指定や選択を行うとともに、精度εを重視した制御を行うか速度を重視した制御を行うかによって精度指定値εCP又はＶCP、εVを入力しあるいは設定する。
【０２４１】
（２）正準化された逆問題の解法に従う指令値の計算
指定曲線ＬＣ上の点Ｐの座標ｒはパラメータｌの指定により曲線式ｒ＝Ｆｌ（ｌ）から求められるので、当該点Ｐについての逆問題の解法計算を行なって指令値を算出する。尚、この計算は、上記のように指定曲線上の任意の点について全て行なった後にメモリに展開した後ポインタ指定でこれらを取り出すこともできるが、点Ｐ毎に当該計算を逐次に行なうことが可能である。
【０２４２】
（３）指令値の加減速パターン生成手段への送出及び加減速パターンの生成
上記の（２）で算出した指令値を加減速パターン生成手段３に送出して、指令値に応じた加減速パターンの生成を行うが、その際、指定曲線ＬＣの曲線長と、加減速曲線のピーク速度到達時間との関係を予め規定しておき、曲線長を示すパラメータｌに対応するピーク速度到達時間を決定するとともに、ピーク速度到達時間をその基準値で割ることによって無次元量の関数として定義される時間軸伸縮用パラメータαの値を決定する。これによって、指令値及び時間軸伸縮用パラメータ値に基づいて加減速曲線の山の高さや時間軸方向の幅を制御することにより加減速曲線を生成して、該加減速曲線に従う制御信号を制御対象に送出する。
【０２４３】
尚、上述したように、精度指定に係る制御では、制御対象に係る配位座標系での位置誤差を空間座標系での表現に変換したものと指定値εCPとを比較してその結果に応じて指令値を指すポインタの前進や一時停止を行なっており、また、速度指定に係る制御では、制御対象に係る配位座標系での速度を空間座標系での表現に変換したものと指定値ＶCP、εVにより規定される基準とを比較してその結果に応じて指定曲線の分割に係る線素長を変化させることで指定曲線の再分割及び分割点に係る正準化された逆問題解法の計算を行なっている。
【０２４４】
しかして、点間移動制御と経路指定制御では、指令値と、これに対応して規定される加減速曲線のピーク速度到達時間及び時間軸伸縮用パラメータとに応じて加減速曲線の山の高さや時間軸方向の幅を制御することにより加減速曲線を生成して、該加減速曲線に従う制御信号を制御対象に送出するという両制御について統一化されたアルゴリズムに従って加減速パターンを生成することができる。つまり、両制御の違いは指令値の与え方の相違だけであり、点間移動制御では指令値が、ある指定点から目標地点を示す指定点までの移動距離に対応する変位量であるのに対して、経路指定制御では、指定曲線上の点について正準化された逆問題解法の適用によって得られる位置の変位量であるということに過ぎない。従って、加減速曲線の生成の主要部分については両制御において統一化されており、制御装置の構成の主要部が共通化される。
【０２４５】
図３５は加減速パターン生成手段３として仮想サーボ系を用いた場合における装置の概念的な構成を示すものであり、指令手段２の発する信号が、切換手段１５ａ、逆問題計算手段１６、切換手段１５ｂ、仮想サーボ系３を経てサーボ系４（制御対象）に送出されるように構成されている。即ち、点間移動制御においては指令手段２の発する信号が切換手段１５ａ、１５ｂにおいてそのまま選択されて仮想サーボ系に送出されるのに対して、経路指定制御においては、指令手段２の発する信号が切換手段１５ａ、１５ｂの切り換えによって逆問題計算手段１６を通された後仮想サーボ系に送出される。
【０２４６】
尚、上記制御手順において、手順（２）と手順（３）における加減速パターンの生成は、常にこの順序で行う必要がある訳ではなく、両手順を逆にすることが可能である。
【０２４７】
即ち、上記した点間移動制御の説明では、加減速パターン生成手段３を構成する仮想サーボ系の入力が指定点間の距離ΔΘに係る指令値であり、その出力が加減速パターン（位置θや速度θ(1)）であったのに対して、距離ΔΘの代わりに指定曲線の長さＬに係る指令値を入力とし、曲線の長さ（正確には上記した曲線式ｒ＝ＦＬ（ｌ）におけるパラメータｌ）に係る時間的変化を出力とする拡張された仮想サーボ系（以下、これを「ｌ拡張仮想サーボ系」という。）を導入することによって、その出力に対して、正準化された逆問題の解法を適用することができる。つまり、前記した仮想サーボ系の出力が加減速パターンであったのに対して、ｌ拡張仮想サーボ系の出力は、曲線長の時間的変化（つまり線速度）を示すパターンである。
【０２４８】
例えば、上記した点間移動制御に係る説明の後半部でランプ信号を取り上げたので、ここでもパラメータｌに関するランプ信号を指令信号とし、図３６に示すように、パラメータｌの折れ時間を「Ｔf」とし、０≦ｔ≦Ｔfにおけるランプ信号の傾斜をｌ(1)とし、ｔ＝Ｔfにおいてｌ＝Ｌ（指定曲線の曲線長）に等しいとすると、これをｌ拡張仮想サーボ系に入力した時の出力としてｌやその時間微分ｌ(1)の時間的変化が得られることになる（図では線速度ｌ(1)（ｔ）の変化を示す。）。
【０２４９】
パラメータｌは上記のように指定曲線ＬＣ上の点位置を示すパラメータであるから、ｌの値が決まればこれに対応する点の座標が求められので、当該点について正準化された逆問題の解法を適用することによって、制御対象の姿勢や状態等に係る制御指令値を計算することができる。尚、このような計算処理を行なっているのは、指定曲線上の点位置の算出及び逆問題に係る計算手段１７である。制御対象をロボットに特定して説明すると、例えば、この計算はパラメータ値ｌに対応する指定曲線上の点Ｐの直交位置座標ｒ（ｘ，ｙ，ｚ）からロボットの関節角列（θ１，θ２，・・・）を求める計算に他ならない。
【０２５０】
こうして得られた制御指令値（つまり配位座標系での表現）については、制御対象を構成する現実の各サーボ系に各別に送出され、それぞれの動作制御が行われることになるが、正準化された逆問題の解法による計算結果については各サーボ系について理想的な同期がかかることになる。つまり、ロボットを制御対象とする場合に、ｌ拡張仮想サーボ系のある時点の出力（つまり、点Ｐの直交位置座標ｒ（ｘ，ｙ，ｚ）に対応するロボットの関節角列（θ１，θ２，・・・）を得てこれをそのまま各駆動軸への制御指令とすることができる。
【０２５１】
尚、指令手段２からｌ拡張仮想サーボ系３′に送出されるランプ信号については傾き等が制御対象の運動制御にとって許容される範囲にあるか否かを常時監視する必要があり、図示するように監視手段１８は制御対象の運動に係る指令速度や加速度とこれらの最大値（θMAX(n)）とを比較して、比較結果をランプ傾斜制御手段１９に送出することによって、指令速度や加速度が常に最大値以下となるように、ランプ傾斜制御手段１９がランプ信号の傾斜を変化させる。例えば、図３７に示すように、指令手段からｌ拡張仮想サーボ系３′に送出されるランプ信号に基づいて、指定曲線上の点位置算出手段２０がｌ値に対応する点Ｐの位置座標を計算した後、逆問題計算手段２１が当該点Ｐについて正準化された逆問題解法を適用した計算を行なう。そして、その計算結果に基づいて１階微分演算部２２（図に「ｄ／ｄｔ」で示す。）や２階微分演算部２３（図に「ｄ2／ｄｔ2」で示す。）を通して速度や加速度を算出した後、それらを比較手段２４に送出して各算出値とこれらの最大値との比較してその結果をランプ傾斜制御手段１９に送出する。これによって指令速度や加速度がこれらの最大値以下の場合には、ランプ信号の傾斜をそのまま維持し、指令速度や加速度がこれらの最大値を越える場合には、ランプ信号の傾斜を小さくすることによって指令速度や加速度に制限を加える。尚、このように修正を受けたランプ信号はｌ拡張仮想サーボ系を介して計算手段１７を構成する点位置算出手段２５、逆問題計算手段２６に送出された後サーボ系４に送出される。
【０２５２】
また、上記した精度指定に係る制御２−１）や速度指定に係る２−２）については、図３６に示すように、制御対象を構成する現実のサーボ系から実際の位置誤差や速度等を得て、順問題計算手段２７においてこれらについての空間座標系での表現を算出した後、精度／速度演算手段２８において位置精度の指定値εCPや速度精度の指定値εVと、算出された精度とを比較して比較結果をランプ傾斜制御手段１９に送出することにより、精度が指定値以下となるようにランプ信号の傾斜を変化させるようにすれば良い。
【０２５３】
例えば、図３８に示すように、現実のサーボ系の出力信号に対して順問題計算手段２７が正準化された順問題解法を適用した計算を行ない、その結果を誤差演算手段２９、３０に直接に又は時間による１階微分演算部３２（図に「ｄ／ｄｔ」で示す。）を介して送出する。これらの誤差演算手段には、ｌ拡張仮想サーボ系の出力信号に基づいて指定曲線上の点位置算出手段２５がｌ値に対して算出した点の位置座標や、これに１階微分演算部３１（図に「ｄ／ｄｔ」で示す。）を通して１階微分演算を施した結果がそれぞれ入力される。つまり、一方の誤差演算手段２９は点位置算出手段２５と順問題計算手段２７との出力差（位置精度ε）を求めてこれを比較手段３３に送出し、該比較手段３３がεとその指定値εCPとを比較してその結果をランプ傾斜制御手段１９に送出する。また、他方の誤差演算手段３０には指定曲線上の点位置算出手段２５や順問題計算手段２７からの速度差（速度精度）を求めてこれを比較手段３４に送出し、該比較手段３４が速度精度とその指定値εVを比較してその結果をランプ傾斜制御手段１９に送出する。これによって位置や速度の精度が指定値以下の場合には、ランプ信号の傾斜をそのまま維持し、位置や速度の精度が指定値を越える場合には、ランプ信号の傾斜を大きくしたり小さくすることによって精度が指定範囲になるように制御する。尚、ランプ信号の場合には、その傾斜が速度を示しているので、その指定は直感的に把握し易い。
【０２５４】
しかして、ｌ拡張仮想サーボ系を用いる方法によれば、指定曲線の曲線長に係るパラメータｌについての指令値を入力として、その出力に対して正準化された逆問題の解法を適用して制御対象の運動に係る１組みの制御指令を得ることができるので、仮想サーボ系を制御対象の駆動軸毎に各別に設ける必要がなくなる分だけ構成が簡単となり、また、各駆動軸の同期的な制御を容易に行うことができる。
【０２５５】
尚、経路指定制御では、前記のような仮想サーボ系を用いる方法やｌ拡張仮想サーボ系を用いる方法とを例示したが、本質的には両者は同等の制御である。何故なら、メモリに関するポインタ操作では、精度εとその指定値εCPとを比較してポインタの前進と停止を制御しているが、ランプ信号の場合には、ポインタの前進及び停止の代わりにランプ信号の傾斜度を可変制御しており、また、線素長ΔＬの修正による指定曲線の再分割はある単位時間（Ｔs）における移動距離ΔＬ、つまり速さΔＬ／Ｔsを指定曲線上の点毎に制御しており、これがランプ信号の場合にはその傾斜度の可変制御に相当するからである。そして、ランプ信号を用いる場合には、経路指定制御についても速度や移動時間の変更制御や移動途中での停止や再開等に係る制御を点間移動制御の例に倣って行うことができる。
【０２５６】
しかして、ｌ拡張仮想サーボ系を用いる方法と前記した点間移動制御との関係については、図３９に示すように、指令信号をランプ信号に特定して示す装置の概念的な構成から明らかである。即ち、装置は、指令手段の発する信号（グラフ図で示す。尚、「／」は「又は」を意味する。）が、ｌ拡張仮想サーボ系３′、切換手段３５、逆問題計算手段３６（上記点位置算出手段２５を含む）、切換手段３７を経て制御対象に送出されるように構成されており、点間移動制御においては指令手段の発するランプ信号θREF（移動距離Δθ）がｌ拡張仮想サーボ系３′を経た後、切換手段３５、３７においてそのまま選択されて制御対象に送出されるのに対して、経路指定制御においては、指令手段の発するランプ信号ｌREF（曲線長Ｌ）がｌ拡張仮想サーボ系３′を経た後、切換手段３５、３７の切り換えによって逆問題計算手段３６を通された後制御対象に送出される。尚、点間移動制御において２点間で決まる最短経路を経路指定制御に係る指定曲線とみなし、その曲線長Ｌを解析的な関数の形式で求めることができる場合には、図における切換手段３５、３７はもはや不要となり、点間移動制御という概念を経路指定制御の概念の中に包含することができる。
【０２５７】
上記の構成では、説明に具体性を与えるために指令信号をランプ信号に特定したがこれはあくまで例示に過ぎず、本発明に係る指令信号がランプ信号のみに限定される訳ではない。例えば、ランプ信号の例では速度や加速度の制限あるいは位置や速度の精度指定に係る制御について、ランプ信号の傾斜（時間による１階微分）の度合について制御したが、一般には時間によるｎ階微分（ｎは自然数。）の制御によって各種形状の指令信号に対する制限や制御が可能である（例えば、放物線状の指令信号については２階微分量の可変制御を行うことができる。）。
【０２５８】
以上に記載したところから明らかなように、本発明によれば、点間移動制御と経路指定制御に係る加減速パターンの生成について、アルゴリムの統一化を図ることができる。即ち、点間移動制御の場合には指定点間の変位量に係る指令、また経路指定制御の場合には指定曲線の曲線長に係る指令に基づいて、時間軸伸縮用パラメータの値を決定して、指令値及び時間軸伸縮用パラメータ値に基づいて加減速パターン又は線速度の変化パターンを示す曲線の山の高さや時間軸方向の幅を制御することにより制御曲線を生成して、これに従う制御信号を制御対象に送出するという点で共通化されており、両者における違いは経路指定制御における正準化された逆問題の解法に係る計算処理であるが、上述したように点間移動制御といえども指定点間のある経路を通ることから（点の指定者にとって経路に関心がないだけに過ぎない。）、その経路を示す曲線を経路指定制御に係る指定曲線に含めることによって、アルゴリズムの統一化が完全なものとなる。そして、本発明によれば制御対象の構成の相違に対して柔軟に対応することができるので汎用性が高い。
【０２５９】
【実施例】
以下に、本発明をロボット制御装置に適用した実施の一例を説明する。
【０２６０】
図４０はロボット制御装置３８のハードウェア構成の要部を概略的に示すものである。
【０２６１】
ロボット制御装置３８は、ＣＰＵ（中央演算装置）３９を核とし、そのバス４０に直接又は間接的に接続される記憶部４１を有している。
【０２６２】
記憶部４１には、例えば、ロボットの動作手順の記述に係るロボットプログラムや、ロボットシステムの記述（例えば、ロボットの各軸の動作を決定する座標変換等の記述）に係るシステムプログラム等が記憶されるようになっている。
【０２６３】
サーボユニット４２、４２、・・・は、ロボット４３を構成する駆動軸毎に独立しており、ＣＰＵ３９から発せられた命令に従ってロボット４３の軸駆動を行なうアクチュエータ（モータやシリンダ等）を制御するために設けられている。
【０２６４】
ロボット４３の動作指示に係るティーチングペンダント４４は、Ｔ．Ｐ．（ティーチングペンダントの略）インターフェース４５を介してバス４０に接続されている。
【０２６５】
本発明のロボット制御装置３８への適用にあたっては、図３５や図３９に示す装置の構成を、ロボット４３の駆動軸について構築する必要がある。即ち、サーボ系４が、ロボット４３の駆動軸の一に相当するものと考えれば良く、ロボット制御に係るサーボ制御手段は上記ＣＰＵ３９、記憶部４１、サーボユニット４２やティーチングペンダント４４等の機能的結合によって実現される。例えば、上記した指令手段２は、ＣＰＵ３９、記憶部４１、ティーチングペンダント４４の機能によって実現され、ロボット制御において点間移動制御に相当するＰＴＰ動作の制御を行うかあるいは経路指定制御に相当するＣＰ動作の制御を行うかを選択したり、ＣＰ動作における指定曲線の教示等をティーチングペンダント４４を使って行うことができる。
【０２６６】
尚、ロボットのように多軸構成の場合には、各駆動軸についてα値が存在するので、それらを各別の値として取り扱うか、各駆動軸に共通のα値を用いるかを、制御の目的を考慮した上で使い分けることが望ましい。例えば、駆動軸毎に仮想サーボ系が用意され、かつ時間軸伸縮用パラメータαが各駆動軸について独立に規定される場合には、ＰＴＰ動作の開始や停止について同期をとる必要性を考慮して各駆動軸に共通のα値を用いるようにしたり、あるいは、アーム間の力学的な干渉作用（つまり、あるアームの運動が他のアームの運動に対して影響を及ぼす力学的な作用であり、例えば、特開平４−３０６７１１号公報参照。）等を考慮した上で時間軸伸縮用パラメータαの値を決定することができる。尚、ＣＰ動作に関して上記ｌ拡張仮想サーボ系を用いた構成にあっては、曲線長に係る線速度の変化パターンの生成に必要とされる時間軸伸縮用パラメータαが唯一の値に規定される。
【０２６７】
しかして、本発明に係るサーボ制御装置及びサーボ制御方法をロボットの動作制御に適用した場合には、ロボットの構造が如何なるものであっても、ロボットを構成する各駆動軸についてＰＴＰ動作とＣＰ動作の制御を統一されたアルゴリズムに従って実現することができる。よって、加減速パターンや曲線長の変化パターンの生成にあたっては、ロボットが直交型か多関節型かに捉われることなく、また、ロボットの駆動軸がアームの駆動に関するものか、あるいは効果器の駆動に関するものか等に捉われることがなく本発明を適用することができるので、ロボットの構造等に強く依存したアルゴリズムを個別に模索する必要がなくなる。
【０２６８】
【発明の効果】
以上に記載したところから明らかなように、本発明によれば、制御対象の特定部を指定点に移動させる場合や、制御対象の特定部を指定経路に沿って移動させる場合に、制御指令値に応じた時間軸伸縮用パラメータ値を決定して加減速曲線又は線速度の時間的変化を示す制御曲線を生成することができるので、両制御に係るアルゴリズムの統一化を実現することができる。よって、両制御を区別して各別のアルゴリズムを模索したり、それぞれのアルゴリズムに従った加減速曲線や線速度変化を示す制御曲線を生成する必要がなくなって制御方法が簡潔になり、装置の設計や保守上の負担が低減される。また、各種の制御対象への適用にあたって汎用性の高いアルゴリズムを提供することができる。
【０２７０】
請求項１や請求項３に係る発明によれば、制御対象が所定の位置精度を保って運動するように精度指定値に対して現実の位置精度を監視することによって、点間移動制御と経路指定制御との間で共用し得る精度制御が可能となる。
【０２７１】
請求項２や請求項４に係る発明によれば、制御対象が所望の速度をもって所定の速度精度を保って運動するように速度指定値や速度精度の指定値に対して現実の速度及びその精度を監視することによって、点間移動制御と経路指定制御との間で共用し得る速度制御が可能となる。
【０２７２】
請求項５乃至８に係る発明によれば、ロボットの構造がどのようなものであっても、ＰＴＰ動作とＣＰ動作の制御に係る統一化されたアルゴリズムに従ってロボットを構成する各サーボ系を制御することができ、また、動作途中の運動停止や再開あるいは速度変更や移動時間の変更、経路の迂回に係る制御等を容易に実現することができる。
【図面の簡単な説明】
【図１】図２乃至図１８とともに点間移動制御について説明するための図であり、本図はサーボ制御装置の構成を概念的に示す図である。
【図２】ランプ信号を示すグラフ図である。
【図３】関数計算による加減速曲線の生成について説明するためのグラフ図である。
【図４】仮想サーボ系について説明するためのものであり、（ａ）は現実のモータ系の一例を示すシグナルフロー線図、（ｂ）は（ａ）のモータ系に対する仮想モータ系の構成を示すシグナルフロー線図である。
【図５】仮想モータ系にステップ信号を入力する場合の応答出力について説明するための図であり、（ａ）はステップ入力信号を示し、（ｂ）は出力θO及びθO(1)を示す。
【図６】仮想モータ系にランプ信号を入力する場合の応答出力について説明するための図であり、（ａ）はランプ入力信号を示し、（ｂ）は出力θO及びθO(1)を示す。
【図７】仮想モータ系に係る基準系と、該基準系に対するα変換によって得られる仮想モータ系について説明するための図である。
【図８】仮想モータ系にランプ信号を与えた場合の出力について説明するための図である。
【図９】Δθ−ＴP特性の一例を示すグラフ図である。
【図１０】ＴP値及びＴf値の決定の仕方について説明するための図であり、（ａ）はｔ−θ図とＴP−Δθ図とを併記したグラフ図、（ｂ）は（ａ）に対応するｔ−Ω図である。
【図１１】制御対象が２軸構成の場合のＴP値及びＴf値の決定について説明するための図であり、ｔ−θ図とＴP−Δθ図とを併記して示すグラフ図である。
【図１２】ランプ信号の傾きと制御対象の最大速度との関係について説明するためのｔ−θ図である。
【図１３】ランプ信号についての速度や加速度の制限法について概念的に示す図である。
【図１４】図１５とともに点間移動制御における移動速度の変更制御について説明するための図であり、本図はＴP≧ＴPMの場合のｔ−θREF図及びｔ−θO(1)図を示す。
【図１５】本図はＴP＜ＴPMの場合のｔ−θREF図及びｔ−θO(1)図を示す。
【図１６】制御対象が２軸構成の場合において駆動軸の開始時点に時間差を設けた動作制御について説明するための図である。
【図１７】２軸が直交関係にある場合の作用点の移動と図１６の動作制御との関係について説明するためのグラフ図である。
【図１８】動作の一時停止及び再開に係る制御について説明するためのｔ−θREF図及びｔ−θO(1)図である。
【図１９】図２０乃至図３９とともに経路指定制御について説明するための図であり、本図は指定曲線についての説明図である。
【図２０】制御対象を２軸構成のロボットに特定した場合に、ロボットや移動物体に関する諸量の関係を示す略線図である。
【図２１】図２０に示すロボットに関する逆運動学問題の解法について説明するための略線図である。
【図２２】サーボ制御装置の構成を概念的に示す図である。
【図２３】位置精度指示に係る制御についてのサーボ制御装置の概念的な構成を示す図である。
【図２４】図２５とともに位置精度指示に係る制御法について説明するために処理の流れを示すフローチャート図であり、本図はその前半部を示す。
【図２５】フローチャート図の後半部を示す。
【図２６】指定曲線の教示について説明するための図である。
【図２７】線素長ΔＬiによる線分の等分割を示す図である。
【図２８】位置精度指示に係るポインタの制御についての説明図である。
【図２９】位置精度指示に係る制御法の点間移動制御への適用について説明するための図である。
【図３０】速度指示に係る制御についてのサーボ制御装置の概念的な構成を示す図である。
【図３１】速度範囲に係る領域区分についての説明図である。
【図３２】図３３とともに位置精度指示に係る制御法について説明するために処理の流れを示すフローチャート図であり、本図はその前半部を示す。
【図３３】フローチャート図の後半部を示す。
【図３４】速度修正の様子について概念的に示すグラフ図である。
【図３５】点間移動制御と経路指定制御との間で統一化されたサーボ制御装置の概念的な構成を示す図である。
【図３６】図３７乃至図３９とともにｌ拡張仮想サーボ系を導入した場合のサーボ制御装置の構成を示すものであり、本図は全体の構成を概念的に示す図である。
【図３７】ランプ信号に係る速度や加速度の制限について説明するための図である。
【図３８】位置や速度についての精度指定に係る制御を説明するための図である。
【図３９】点間移動制御と経路指定制御との間で統一化されたサーボ制御装置の概念的な構成を示す図である。
【図４０】本発明のロボット制御装置への適用について示すものであり、本図はロボット制御装置のハードウェア構成の一例を示す図である。
【符号の説明】
１…サーボ制御装置、２…指令手段、３、３′…加減速又は線速度変化のパターン生成手段、４…制御対象、６…制御手段、７…精度入力／設定手段、１０′…速度入力／設定手段、１１、１２…制御手段、３８…ロボット制御装置、４３…ロボット
【図１】
0003671505.tif 000033
【図２】
0003671505.tif 000034
【図３】
0003671505.tif 000035
【図４】
0003671505.tif 000036
【図５】
0003671505.tif 000037
【図６】
0003671505.tif 000038
【図７】
0003671505.tif 000039
【図８】
0003671505.tif 000040
【図９】
0003671505.tif 000041
【図１０】
0003671505.tif 000042
【図１１】
0003671505.tif 000043
【図１２】
0003671505.tif 000044
【図１３】
0003671505.tif 000045
【図１４】
0003671505.tif 000046
【図１５】
0003671505.tif 000047
【図１６】
0003671505.tif 000048
【図１７】
0003671505.tif 000049
【図１８】
0003671505.tif 000050
【図１９】
0003671505.tif 000051
【図２０】
0003671505.tif 000052
【図２１】
0003671505.tif 000053
【図２２】
0003671505.tif 000054
【図２３】
0003671505.tif 000055
【図２４】
0003671505.tif 000056
【図２５】
0003671505.tif 000057
【図２６】
0003671505.tif 000058
【図２７】
0003671505.tif 000059
【図２８】
0003671505.tif 000060
【図２９】
0003671505.tif 000061
【図３０】
0003671505.tif 000062
【図３１】
0003671505.tif 000063
【図３２】
0003671505.tif 000064
【図３３】
0003671505.tif 000065
【図３４】
0003671505.tif 000066
【図３５】
0003671505.tif 000067
【図３６】
0003671505.tif 000068
【図３７】
0003671505.tif 000069
【図３８】
0003671505.tif 000070
【図３９】
0003671505.tif 000071
【図４０】
0003671505.tif 000072