"アクチュエータを有し、当該アクチュエータの制御値を所定の制御周期毎に変化させることによりロボットのツールを所望する移動軌跡に沿って移動開始点から移動終了点まで変化させるロボットの制御装置において、前記所望する移動軌跡の途中で、少なくとも2つの動作を合成した合成移動軌跡に沿って前記ツールを移動させる際に適用される制御装置であって、前記合成移動軌跡に入る前より行なわれるべき先行動作の仮想上の動作終了点と、前記合成移動軌跡を抜けた以後も行なわれるべき後行動作の仮想上の動作開始点とが一致するように仮想上の動作開始/終了点を探索する仮想上の動作開始/終了点探索手段と、前記先行動作が前記仮想上の動作開始/終了点で終了し、かつ前記後行動作が前記仮想上の動作開始/終了点から、前記先行動作が終了するよりも時間的に前に開始するように、前記先行動作を実現するための先行動作用制御値を初期値から終端値まで演算するとともに、前記後行動作を実現するための後行動作用制御値を初期値から終端値まで演算する制御値演算手段と、前記後行動作用制御値の初期値を、前記先行動作用制御値の終端値に一致させる条件を付加した上で、前記ツールが前記合成移動軌跡に沿って移動する区間におけるアクチュエータの今回の目標制御値を、前記先行動作用制御値の今回値と前回値との差分値と、前記後行動作用制御値の今回値と前回値との差分値とを加算した値に基づき演算するアクチュエータ目標制御値演算手段と、前記演算された目標制御値が得られるようにアクチュエータを制御して前記ツールを前記合成移動軌跡に沿って移動させる制御手段とを備えたことを特徴とするロボットの制御装置。前記ロボットは、前記ツールとしてワークを搬送するハンドを備えたワーク搬送ロボットであることを特徴とする請求項1記載のロボットの制御装置。アクチュエータは、複数のモータであり、先行動作用制御値および後行動作用制御値はそれぞれ、前記ツールの位置に対応する複数のモータの制御位置として演算されることを特徴とする請求項1または2記載のロボットの制御装置。前記アクチュエータは、複数の仮想モータであり、前記少なくとも2つの動作に対応して仮想モータが定められ、先行動作用制御値および後行動作用制御値はそれぞれ、先行動作に対応する仮想モータの制御値および後行動作に対応する仮想モータの制御値として演算されることを特徴とする請求項1または2記載のロボットの制御装置。先行動作用制御値および後行動作用制御値はそれぞれ、逐次の制御周期毎の関数値として演算されることを特徴とする請求項1から4に記載のロボットの制御装置。アクチュエータを有したロボットの当該アクチュエータの制御値を所定の制御周期毎に変化させることによりロボットのツールを所望する移動軌跡に沿って移動開始点から移動終了点まで変化させるロボットの制御方法において、前記所望する移動軌跡の途中で、少なくとも2つの動作を合成した合成移動軌跡に沿って前記ツールを移動させる際に適用される制御方法であって、前記合成移動軌跡に入る前より行なわれるべき先行動作の仮想上の動作終了点と、前記合成移動軌跡を抜けた以後も行なわれるべき後行動作の仮想上の動作開始点とが一致するように仮想上の動作開始/終了点を演算し、前記先行動作が前記仮想上の動作開始/終了点で終了し、かつ前記後行動作が前記仮想上の動作開始/終了点から、前記先行動作が終了するよりも時間的に前に開始するように、前記先行動作を実現するための先行動作用制御値を初期値から終端値まで演算するとともに、前記後行動作を実現するための後行動作用制御値を初期値から終端値まで演算し、前記後行動作用制御値の初期値を、前記先行動作用制御値の終端値に一致させる条件を付加した上で、前記ツールが前記合成移動軌跡に沿って移動する区間におけるアクチュエータの今回の目標制御値を、前記先行動作用制御値の今回値と前回値との差分値と、前記後行動作用制御値の今回値と前回値との差分値とを加算した値に基づき演算し、前記演算された目標制御値が得られるようにアクチュエータを制御して前記ツールを前記合成移動軌跡に沿って移動させる制御を行なうことを特徴とするロボットの制御方法。先行動作用制御値を初期値から終端値まで演算するための先行動作用変換関数を予め用意するとともに、後行動作用制御値を初期値から終端値まで演算するための後行動作用変換関数を予め用意し、所定の制御周期毎に、先行動作用変換関数を用いて先行動作用制御値が演算されるとともに、後行動作用変換関数を用いて後行動作用制御値が演算されることを特徴とする請求項1記載のロボットの制御装置。先行動作用制御値を初期値から終端値まで演算するための先行動作用変換関数を予め用意するとともに、後行動作用制御値を初期値から終端値まで演算するための後行動作用変換関数を予め用意し、所定の制御周期毎に、先行動作用変換関数を用いて先行動作用制御値が演算されるとともに、後行動作用変換関数を用いて後行動作用制御値が演算されることを特徴とする請求項6記載のロボットの制御方法。従来技術1によれば、ワーク搬送ロボットのハンドが図中略円弧状の補正移動経路310に沿って移動するため、位置R1、R2を結んだ直線状の移動経路および位置R2、R3を結んだ直線状の移動経路に沿って移動する場合に較べて、途中位置R2でロボットハンドを停止させる必要がない。このためワークを高速でスムーズに搬送させることができる。しかし、ワーク搬送ロボットのハンドを略円弧状の補正移動経路310に沿って移動させるには、予め補正移動経路310を円弧補間や教示によって求めておく必要がある。補正移動経路310を予め求めておかなければ、補正移動経路310上の制御時間間隔毎の逐次のロボットハンド移動位置に対応するロボット各軸の目標位置を求めることができないからである。このように従来技術1にあっては、ロボット各軸を制御するために、略円弧状の補正移動経路310を予め求めておく必要があり、ロボット制御の前処理としての演算処理に多大な時間を要することになっていた。同様に従来技術2によれば、ワーク搬送ロボット300のハンド303が点Q2をショートカットした略円弧状のショートカット軌跡および点Q3をショートカットしたショートカット軌跡に沿って移動するため、直線移動軌跡Q5~Q2を移動しついで旋回移動軌跡P2~P3を移動しついで直線移動軌跡Q3~Q4を移動する場合に較べて、点Q2、点Q3でロボットハンド203を停止させる必要がない。このためワークWを高速でスムーズに搬出、搬入させることができる。しかし、従来技術2においても従来技術1と同様に、ワーク搬送ロボット300のハンド303を略円弧状のショートカット軌跡に沿って移動させるには、予めショートカット軌跡を円弧補間や教示によって求めておく必要がある。ショートカット軌跡を予め求めておかなければ、ショートカット軌跡上の制御時間間隔毎の逐次のロボットハンド303の移動位置に対応するロボット各軸の目標位置を求めることができず、合成速度パターンに従った所望する速度でロボットハンドを移動させることはできないからである。このように従来技術2にあっても従来技術1と同様に、ロボット各軸を制御するために、略円弧状のショートカット軌跡を予め求めておく必要があり、ロボット制御の前処理としての演算処理に多大な時間を要することになっていた。以上のとおり、従来技術には、所望する移動軌跡たとえば図2の点Q1~点Q4の途中で、2つの動作直線動作と旋回動作を合成した合成移動軌跡ショートカット軌跡に沿ってツールロボットハンドを移動させるという考え方が示唆されているものの、せいぜい速度パターンを合成した合成速度パターンでツールを速度制御するにとどまり、ロボット各軸各軸を駆動するアクチュエータを制御するためには、合成移動軌跡を求める演算処理が必須であることになっていた。本発明はこうした実情に鑑みてなされたものであり、所望する移動軌跡の途中で、少なくとも2つの動作を合成した合成移動軌跡に沿ってツールを移動させるに際して、合成移動軌跡を求める演算処理を不要として、ロボット制御の前処理に要する処理時間を飛躍的に短縮させることを解決課題とするものである。第1発明は、アクチュエータを有し、当該アクチュエータの制御値を所定の制御周期毎に変化させることによりロボットのツールを所望する移動軌跡に沿って移動開始点から移動終了点まで変化させるロボットの制御装置において、前記所望する移動軌跡の途中で、少なくとも2つの動作を合成した合成移動軌跡に沿って前記ツールを移動させる際に適用される制御装置であって、前記合成移動軌跡に入る前より行なわれるべき先行動作の仮想上の動作終了点と、前記合成移動軌跡を抜けた以後も行なわれるべき後行動作の仮想上の動作開始点とが一致するように仮想上の動作開始/終了点を探索する仮想上の動作開始/終了点探索手段と、前記先行動作が前記仮想上の動作開始/終了点で終了し、かつ前記後行動作が前記仮想上の動作開始/終了点から、前記先行動作が終了するよりも時間的に前に開始するように、前記先行動作を実現するための先行動作用制御値を初期値から終端値まで演算するとともに、前記後行動作を実現するための後行動作用制御値を初期値から終端値まで演算する制御値演算手段と、前記後行動作用制御値の初期値を、前記先行動作用制御値の終端値に一致させる条件を付加した上で、前記ツールが前記合成移動軌跡に沿って移動する区間におけるアクチュエータの今回の目標制御値を、前記先行動作用制御値の今回値と前回値との差分値と、前記後行動作用制御値の今回値と前回値との差分値とを加算した値に基づき演算するアクチュエータ目標制御値演算手段と、前記演算された目標制御値が得られるようにアクチュエータを制御して前記ツールを前記合成移動軌跡に沿って移動させる制御手段とを備えたことを特徴とする。第2発明は、第1発明において、前記ロボットは、前記ツールとしてワークを搬送するハンドを備えたワーク搬送ロボットであることを特徴とする。第3発明は、第1発明または第2発明において、アクチュエータは、複数のモータであり、先行動作用制御値および後行動作用制御値はそれぞれ、前記ツールの位置に対応する複数のモータの制御位置として演算されることを特徴とする。第4発明は、第1発明または第2発明において、前記アクチュエータは、複数の仮想モータであり、前記少なくとも2つの動作に対応して仮想モータが定められ、先行動作用制御値および後行動作用制御値はそれぞれ、先行動作に対応する仮想モータの制御値および後行動作に対応する仮想モータの制御値として演算されることを特徴とする。第5発明は、第1発明から第4発明において、先行動作用制御値および後行動作用制御値はそれぞれ、逐次の制御周期毎の関数値として演算されることを特徴とする。第6発明は、アクチュエータを有したロボットの当該アクチュエータの制御値を所定の制御周期毎に変化させることによりロボットのツールを所望する移動軌跡に沿って移動開始点から移動終了点まで変化させるロボットの制御方法において、前記所望する移動軌跡の途中で、少なくとも2つの動作を合成した合成移動軌跡に沿って前記ツールを移動させる際に適用される制御方法であって、前記合成移動軌跡に入る前より行なわれるべき先行動作の仮想上の動作終了点と、前記合成移動軌跡を抜けた以後も行なわれるべき後行動作の仮想上の動作開始点とが一致するように仮想上の動作開始/終了点を演算し、前記先行動作が前記仮想上の動作開始/終了点で終了し、かつ前記後行動作が前記仮想上の動作開始/終了点から、前記先行動作が終了するよりも時間的に前に開始するように、前記先行動作を実現するための先行動作用制御値を初期値から終端値まで演算するとともに、前記後行動作を実現するための後行動作用制御値を初期値から終端値まで演算し、前記後行動作用制御値の初期値を、前記先行動作用制御値の終端値に一致させる条件を付加した上で、前記ツールが前記合成移動軌跡に沿って移動する区間におけるアクチュエータの今回の目標制御値を、前記先行動作用制御値の今回値と前回値との差分値と、前記後行動作用制御値の今回値と前回値との差分値とを加算した値に基づき演算し、前記演算された目標制御値が得られるようにアクチュエータを制御して前記ツールを前記合成移動軌跡に沿って移動させる制御を行なうことを特徴とする。第7発明は、第1発明において、先行動作用制御値を初期値から終端値まで演算するための先行動作用変換関数を予め用意するとともに、後行動作用制御値を初期値から終端値まで演算するための後行動作用変換関数を予め用意し、所定の制御周期毎に、先行動作用変換関数を用いて先行動作用制御値が演算されるとともに、後行動作用変換関数を用いて後行動作用制御値が演算されることを特徴とする。第8発明は、第6発明において、先行動作用制御値を初期値から終端値まで演算するための先行動作用変換関数を予め用意するとともに、後行動作用制御値を初期値から終端値まで演算するための後行動作用変換関数を予め用意し、所定の制御周期毎に、先行動作用変換関数を用いて先行動作用制御値が演算されるとともに、後行動作用変換関数を用いて後行動作用制御値が演算されることを特徴とする。発明の効果本発明によれば、図6および図8に示すように、先行動作P1~P2までの直線動作Aを実現するための先行動作用制御値A1nA、A2nA、A3nAを初期値A1sA、A2sA、A3sAから終端値A1EA、A2EA、A3EAまで演算されるとともに、後行動作P2~P3までの直線動作Bを実現するための後行動作用制御値B1nB、B2nB、B3nBを初期値B1sB、B2sB、B3sBから終端値B1EB、B2EB、B3EBまで演算される。この場合、先行動作用制御値を初期値から終端値まで演算するための先行動作用変換関数FAが予め用意されるとともに、後行動作用制御値を初期値から終端値まで演算するための後行動作用変換関数FBが予め用意され、所定の制御周期毎に、先行動作用変換関数FAを用いて先行動作用制御値が演算されるとともに、後行動作用変換関数FBを用いて後行動作用制御値が演算される第7発明、第8発明。このようにして得られた先行動作用制御値A1nA、A2nA、A3nA、後行動作用制御値B1nB、B2nB、B3nBに基づき、後行動作用制御値の初期値B1sB、B2sB、B3sBを、先行動作用制御値の終端値A1EA、A2EA、A3EAに一致させる条件B1sB=A1EA、B2sB=A2EA、B3sB=A3EAを付加した上で、ツールが合成移動軌跡ABに沿って移動する区間におけるアクチュエータの今回の目標制御値M1n、M2n、M3nを、先行動作用制御値の今回値と前回値との差分値A1nA-A1nA1、A2nA-A2nA1、A3nA-A3nA1と、後行動作用制御値の今回値と前回値との差分値B1nB-B1nB1、B2nB-B2nB1、B3nB-B3nB1とを加算した値A1nA-A1nA1B1nB-B1nB1、A2nA-A2nA1B2nB-B2nB1、A3nA-A3nA1B3nB-B3nB1に基づき演算し、この演算された目標制御値が得られるようにアクチュエータを制御することで、ツールを合成移動軌跡に沿って移動させることができる。このように合成移動軌跡P4~P5の略円弧軌跡AB上の制御値は、先行動作用制御値と後行動作用制御値から求められ、予め合成移動軌跡を求めておく必要はない。なお、先行動作用制御値と後行動作用制御値は、制御動作中に所定の制御周期毎に得られるものであり、予めこれら制御値を求めておき所定のメモリに記憶しておくという前処理は不要である。よって合成移動軌跡を予め計算しておくという前処理に要する時間を短縮することができる。さらにいえば、先行動作用制御値を求めるための先行動作用変換関数FA、後行動作用制御値を求めるための後行動作用変換関数FBのみを予め用意しておけばよく、合成移動軌跡上の制御値を求めるための特別な関数を用意することは不要である。このように本発明によれば、所望する移動軌跡の途中で、少なくとも2つの動作を合成した合成移動軌跡に沿ってツールを移動させるに際して、予め合成移動軌跡を求めておくという前処理や合成移動軌跡上の制御値を求めるための特別な関数が不要となるため、ロボット制御の前処理に要する処理時間を飛躍的に短縮させることができる。この結果、演算処理の負担が減りロボット制御システムの簡素化を図ることができる。発明の効果本発明によれば、図6および図8に示すように、先行動作P1~P2までの直線動作Aを実現するための先行動作用制御値A1nA、A2nA、A3nAを初期値A1sA、A2sA、A3sAから終端値A1EA、A2EA、A3EAまで演算されるとともに、後行動作P2~P3までの直線動作Bを実現するための後行動作用制御値B1nB、B2nB、B3nBを初期値B1sB、B2sB、B3sBから終端値B1EB、B2EB、B3EBまで演算される。この場合、先行動作用制御値を初期値から終端値まで演算するための先行動作用変換関数FAが予め用意されるとともに、後行動作用制御値を初期値から終端値まで演算するための後行動作用変換関数FBが予め用意され、所定の制御周期毎に、先行動作用変換関数FAを用いて先行動作用制御値が演算されるとともに、後行動作用変換関数FBを用いて後行動作用制御値が演算される第7発明、第8発明。このようにして得られた先行動作用制御値A1nA、A2nA、A3nA、後行動作用制御値B1nB、B2nB、B3nBに基づき、後行動作用制御値の初期値B1sB、B2sB、B3sBを、先行動作用制御値の終端値A1EA、A2EA、A3EAに一致させる条件B1sB=A1EA、B2sB=A2EA、B3sB=A3EAを付加した上で、ツールが合成移動軌跡ABに沿って移動する区間におけるアクチュエータの今回の目標制御値M1n、M2n、M3nを、先行動作用制御値の今回値と前回値との差分値A1nA-A1nA1、A2nA-A2nA1、A3nA-A3nA1と、後行動作用制御値の今回値と前回値との差分値B1nB-B1nB1、B2nB-B2nB1、B3nB-B3nB1とを加算した値A1nA-A1nA1B1nB-B1nB1、A2nA-A2nA1B2nB-B2nB1、A3nA-A3nA1B3nB-B3nB1に基づき演算し、この演算された目標制御値が得られるようにアクチュエータを制御することで、ツールを合成移動軌跡に沿って移動させることができる。このように合成移動軌跡P4~P5の略円弧軌跡AB上の制御値は、先行動作用制御値と後行動作用制御値から求められ、予め合成移動軌跡を求めておく必要はない。なお、先行動作用制御値と後行動作用制御値は、制御動作中に所定の制御周期毎に得られるものであり、予めこれら制御値を求めておき所定のメモリに記憶しておくという前処理は不要である。よって合成移動軌跡を予め計算しておくという前処理に要する時間を短縮することができる。さらにいえば、先行動作用制御値を求めるための先行動作用変換関数FA、後行動作用制御値を求めるための後行動作用変換関数FBのみを予め用意しておけばよく、合成移動軌跡上の制御値を求めるための特別な関数を用意することは不要である。このように本発明によれば、所望する移動軌跡の途中で、少なくとも2つの動作を合成した合成移動軌跡に沿ってツールを移動させるに際して、予め合成移動軌跡を求めておくという前処理や合成移動軌跡上の制御値を求めるための特別な関数が不要となるため、ロボット制御の前処理に要する処理時間を飛躍的に短縮させることができる。この結果、演算処理の負担が減りロボット制御システムの簡素化を図ることができる。以下、図面を参照して本発明に係るロボットの制御装置および制御方法の実施の形態について説明する。なお、以下では、ロボットとして水平多関節ロボットとして構成され、半導体ウェーハや液晶基板などを搬送するワーク搬送ロボットを想定して説明する。図3は、実施例のロボット制御システムの構成を示す図である。同図3に示すように、ロボット制御システムは、大きくは、命令用PCパーソナルコンピュータ30と、ロボットコントローラ40と、モータドライバ51、52、53と、ロボット10とからなる。ロボット10は、図3中に斜視図にて示すように、第1軸1、第2軸2、第3軸3を備えた水平多関節ロボットである。ロボット10は、基台29と、第1リンク21と、第2リンク22と、ハンド23と、モータ11と、モータ12と、モータ13とを備えている。モータ11、12、13はそれぞれ、ロボット10の各軸1、2、3を駆動するアクチュエータを構成する。この実施例では、モータ11、12、13は、回転駆動するアクチュエータであり、制御値として制御位置回転位置が与えられて駆動されるものとする。モータ11は、第1軸1を回動するアクチュエータであり、モータ12は、第2軸2を回動するアクチュエータであり、モータ13は、第3軸3を回動するアクチュエータである。第1リンク21は、基台29に対してその一端が回動自在に連結されており、第1軸1が回動することによって基台29に対して水平方向に相対的に回動する。第2リンク22は、その一端が第1リンク21の他端に回動自在に連結されており、第2軸2が回動することによって第1リンク21に対して水平方向に相対的に回動する。ハンド23は、その上にワークWが載置され、場合によってはワークWを把持する機構を備えたツールを構成しており、第2リンク22の他端に回動自在に連結されており、第3軸3が回動することによって第2リンク22に対して水平方向に相対的に回動する。なお図では、基台29を鉛直方向に移動させるモータ等についての機構の図示は、省略している。モータ11は、たとえば、その回転軸が第1軸1に一致する位置に設けられている。同様に、モータ12は、たとえば、その回転軸が第2軸2に一致する位置に設けられている。同様に、モータ13は、たとえば、その回転軸が第3軸3に一致する位置に設けられている。図4は、ロボット10の動きを水平面で概念的に示した図であり、各軸1、2、3の回動前図4aと、各軸1、2、3の回動後図4bにおけるロボット10の位置姿勢変化の一例を示している。モータ11、12、13を駆動制御し、各軸1、2、3を、図中矢印に示すごとく左回りまたは右回りに回動させることで、ハンド23の基準点23aたとえばハンド23の中心点;以下、ハンド位置23aというを水平方向の所望する移動軌跡に沿って移動させて、ワークWを移動開始点P1から移動開始点P3へ搬送させることができる。図5a、bはそれぞれ、ハンド位置23aを直線動作させる場合、ハンド位置23aを旋回動作させる場合の移動軌跡と、モータ11、12、13の駆動制御指令との関係を示している。図5aに示すように、モータ11、モータ12、モータ13をそれぞれ、1:-2:1の速度比率で駆動制御することにより、ハンド位置23aを直線動作させることができる。なお、モータ11、モータ12、モータ13の回転方向を正逆反対にすることにより、ハンド位置23aが直線動作する方向を正逆反対伸長方向、縮退方向にすることができる。図5bに示すように、モータ12、13の回転を停止させモータ11のみを駆動制御することにより、ハンド位置23aを旋回動作させることができる。なお、モータ11の回転方向を正逆反対にすることにより、ハンド位置23aが旋回動作する方向を正逆反対左旋回、右旋回にすることができる。図6は、実施例の移動軌跡の一例を示している。実施例では、移動開始点P1から移動終了点P3まで移動軌跡Cに沿って移動させるものとする。この移動軌跡Cは、移動軌跡Cの途中で、直線動作Aと直線動作Bとを合成した合成移動軌跡ABを含んでいる。さて図3において命令用PC30と、ロボットコントローラ40と、モータドライバ51、52、53は、モータ11、12、13を駆動制御する装置を構成する。すなわち、命令用PC30からは、移動軌跡Cの移動終了点P3まで移動させることを指示する移動命令が出力され、ロボットコントローラ40に入力される。ロボットコントローラ40は、仮想上の動作開始/終了点探索手段41と、制御値演算手段42と、アクチュエータ目標制御値演算手段43と、制御手段44を構成するドライバ通信部45と、メモリ46を備えている。仮想上の動作開始/終了点探索手段41と、制御値演算手段42と、アクチュエータ目標制御値演算手段43は、CPUによって構成され、図7および詳しくは図8に示される制御プログラムにしたがいメモリ46に記憶されたデータを用いて演算処理を順次実行する。アクチュエータ目標制御値演算手段43では、最終的に各モータ11、12、13の制御周期毎の目標制御位置が求められる。各モータ11、12、13の制御周期毎の目標制御位置は、ドライバ通信部45に与えられる。ドライバ通信部45は、インターフェースを介して目標制御位置に位置させるための位置指令をモータドライバ51、52、53に与える。モータドライバ51、52、53は、制御手段44を構成する。モータドライバ51、52、53はそれぞれ位置指令に対応する駆動信号をモータ11、12、13に出力する。これによりモータ11、12、13が駆動制御され、制御周期毎に目標制御位置に位置され、その結果、ハンド位置23aは、移動開始点P1から移動軌跡Cに沿って移動終了点P3まで移動される。以下、図7および図8のフローチャートで行われる処理の手順について図6を併せ参照して説明する。図7は、ロボットコントローラ40で行われる処理の流れを概略的に示す。まず、命令用PC30から移動命令が入力されたか否かが判断されるステップ101。移動命令が入力されたと判断されるとステップ101の判断Y、つぎに入力された移動命令を実現するための各動作A、Bが求められるステップ102。つぎに動作A、Bごとに制御位置が演算されるステップ103、104。つぎに動作A,Bごとの制御位置の差分値が加算されて、移動軌跡Cに沿って移動させるための目標制御位置が求められるステップ105。つぎに目標制御位置に位置させるようにモータ11、12、13が制御されるステップ106。図8は、図7のステップ102~105の処理を詳細に示している。仮想上の動作開始/終了点P2の探索図7のステップ102では、動作A、動作Bが求められ、動作Aの仮想上の動作終了点および動作Bの仮想上の動作開始点である仮想上の動作開始/終了点P2が探索される。メモリ46には、ハンド位置23aの現在位置P1を含むハンド23の動きを規制する規制データが記憶されている。規制データは、ロボット10の現在の位置、姿勢、ロボット10の動作環境たとえば半導体製造装置の既知の寸法、ロボット10の動作範囲などを考慮して予め記憶、格納しておくものとする。まず、移動命令として与えられる移動終了点はP3であるが、移動終了点P3は、たとえばプロセスチャンバのゲート90内の位置であるとすると、ゲート90に対して垂直な方向にワークWを搬入しなければならないという制限により、移動終了点P3における移動方向V3は、同ゲート90に対する垂直な方向として一義的に定まる。また移動終了点P3付近の移動区間では、旋回動作は不可能であり、直線動作のみ行なえるという制限があるものとする。したがって、これら制限データを考慮すると、移動終了点P3までハンド位置23aを移動させるには、移動方向V3の方向へ移動終了点P3までの直線動作Bを実行しなければならないことがわかる。ハンド位置23aの現在位置P1は、たとえば前回の移動命令による移動軌跡の移動終了位置として、あるいはハンド位置23aの計測位置として与えられる。ハンド位置23aの現在位置P1における移動方向V1は、前回の移動命令による移動軌跡の移動終了位置における移動方向として与えられる。今回の移動命令が初期の移動命令であり、移動開始点P1における移動方向に前回の移動命令の制限を受けないのであれば、動作環境を考慮して最適な移動方向V1に定められる。また移動開始点P1付近の移動区間では、直線動作のみ行なえるという制限があるものとする。したがって、これら制限データを考慮すると、移動開始点P1からハンド位置23aを移動させるには、移動開始点P1を始点として移動方向V1の方向への直線動作Aを実行しなければならないことがわかる。また、今回の移動命令は、移動開始点P1から移動終了点P3までの移動であるから、移動開始点P1を始点とする直線動作Aは、移動終了点P3を終点とする直線動作Bに先行する直線動作となり、直線動作Bは直線動作Aに後行する直線動作となる。先行直線動作Aと後行直線動作Bが求められると、その交点としての仮想上の動作開始/終了点P2が探索される。先行直線動作Aと後行直線動作Bとの交点P2は、先行直線動作Aの仮想上の動作終了点となり、後行直線動作Bの仮想上の動作開始点となる。仮想上と定義したのは、ハンド位置23aは、実際には点P2には位置しないからである。本実施例では、先行直線動作Aと後行直線動作Bの途中に先行直線動作Aと先行直線動作Bとを合成した合成移動軌跡ABを生成してハンド位置23aを途中の仮想上の動作開始/終了点P2で停止させることなく合成移動軌跡ABに沿って高速かつスムーズに移動させるようにしている。以上のようにして、合成移動軌跡ABに入る前より行なわれるべき先行直線動作Aの仮想上の動作終了点と、合成移動軌跡ABを抜けた以後も行なわれるべき後行直線動作Bの仮想上の動作開始点とが一致するように仮想上の動作開始/終了点P2が演算される。この演算は、仮想上の動作開始/終了点探索手段41で行われる。なお、この例では、仮想上の動作開始/終了点P2を演算により探索しているが、仮想上の動作開始/終了点P2を教示により探索してもよい。たとえば、ロボット10を実際に動作させて、ハンド位置23aを先行直線動作Aと後行直線動作Bに沿って移動させて仮想上の動作開始/終了点P2を教示することができる。このように実施例によれば、先行直線動作Aと後行直線動作Bを求め仮想上の動作開始/終了点P2を探索するだけでよく、合成移動軌跡ABを演算により求めたり教示により求めたりする必要がないので、演算処理や教示作業を簡易に行うことができ、CPUの負荷が軽減されるとともに制御の前処理に要する時間を飛躍的に短縮することができるステップ201。以下、制御動作中に行なわれる処理内容について説明する。なお、以下のステップ202における直線動作A,B毎のモータ11、12、13の制御位置の演算処理およびステップ203における移動軌跡Cに沿ってハンド位置23aを移動させるためのモータ11、12、13の目標制御位置の演算処理は、制御動作中に所定の周期毎に行われるものである。直線動作Aに対応するモータ11、12、13の制御位置は、後述する先行動作用の変換関数FAに基づき求められ、直線動作Bに対応するモータ11、12、13の制御位置は、後述する後行動作用の変換関数FBに基づき求められる、変換関数FA、FBは、予め用意されておかれる。直線動作A,B毎のモータ11、12、13の制御位置の演算つぎに、先行直線動作Aが仮想上の動作開始/終了点P2で終了し、かつ後行直線動作Bが仮想上の動作開始/終了点P2から、先行直線動作Aが終了するよりも時間的に前に開始するように、先行直線動作Aを実現するためのモータ11、12、13それぞれの先行直線動作用制御位置A1nA、A2nA、A3nAを初期位置A1sA、A2sA、A3sAから終端値A1EA、A2EA、A3EAまで演算するとともに、後行直線動作Bを実現するためのモータ11、12、13それぞれの後行直線動作用制御位置B1nB、B2nB、B3nBを初期位置B1sB、B2sB、B3sBから終端位置B1EB、B2EB、B3EBまで演算する。この演算は、制御値演算手段42で行われる。モータ11、12、13は、所定の制御周期毎に駆動制御されるため、制御周期の回数をnで表す。制御周期はコントローラ40の演算処理のサイクルタイム等を考慮して定められる。すなわち、いま、つぎのように定義する。nA:先行直線動作Aにおける移動開始からn回目の制御周期nB:後行直線動作Bにおける移動開始からn回目の制御周期A1sA:先行直線動作Aを実現するためのモータ11の初期制御位置A2sA:先行直線動作Aを実現するためのモータ12の初期制御位置A3sA:先行直線動作Aを実現するためのモータ13の初期制御位置A1nA:先行直線動作Aを実現するためのモータ11の現在n周期目制御位置A2nA:先行直線動作Aを実現するためのモータ12の現在n周期目制御位置A3nA:先行直線動作Aを実現するためのモータ13の現在n周期目制御位置A1EA:先行直線動作Aを実現するためのモータ11の終端制御位置A2EA:先行直線動作Aを実現するためのモータ12の終端制御位置A3EA:先行直線動作Aを実現するためのモータ13の終端制御位置B1sB:後行直線動作Bを実現するためのモータ11の初期制御位置B2sB:後行直線動作Bを実現するためのモータ12の初期制御位置B3sB:後行直線動作Bを実現するためのモータ13の初期制御位置B1nB:後行直線動作Bを実現するためのモータ11の現在n周期目制御位置B2nB:後行直線動作Bを実現するためのモータ12の現在n周期目制御位置B3nB:後行直線動作Bを実現するためのモータ13の現在n周期目制御位置B1EB:後行直線動作Bを実現するためのモータ11の終端制御位置B2EB:後行直線動作Bを実現するためのモータ12の終端制御位置B3EB:後行直線動作Bを実現するためのモータ13の終端制御位置ここで先行直線動作用制御位置A1nA、A2nA、A3nAnA=sA、...nA-1、nA...、EAおよび後行直線動作用制御位置B1nB、B2nB、B3nBnB=sB、...nB-1、nB...、EBはそれぞれ、ハンド位置23aに対応するモータ11、12、12の制御位置として演算することができる。一般に、ロボット10のハンド位置23a定義軸の位置の逐次の位置とモータ11、12、13の制御位置との関係は1対1との関係にあり、ハンド位置23aの逐次の位置を演算あるいは教示により求め、ロボット10の逆運動学に基づき逆変換することにより、その逐次のハンド位置23aに対応するモータ11、12、13の逐次の制御位置を一義的な数値として求めることができる。この場合、先行直線動作用制御位置A1nA、A2nA、A3nAnA=sA、...nA-1、nA...、EAおよび後行直線動作用制御位置B1nB、B2nB、B3nBnB=sB、...nB-1、nB...、EBを、逐次のハンド位置23aに対応する角度位置として数値で求めてもよく、逐次のハンド位置23aから逐次のモータ制御位置を演算する変換関数を用意しておき、その変換関数の関数値として求めてもよい。たとえば、次式、A1nA=FA1nAA2nA=FA2nAA3nA=FA3nAB1nB=FB1nBB2nB=FB2nBB3nB=FB3nB...1のごとく、変換関数Fx、つまり動作Xにおけるモータ1aのn周期目の制御位置Xanを計算する関数を用意しておき、その変換関数の関数値として逐次の動作用制御位置を求めることができる。変換関数は、通常は、逐次のハンド位置23aから各モータ11、12、13の制御位置を計算する関数として与えられる。なお、次式、B1sB=A1EAB2sB=A2EAB3sB=A3EA...2に示されるごとく、後行直線動作用制御位置の初期位置B1sB、B2sB、B3sBはそれぞれ、先行直線動作用制御位置の終端位置A1EA、A2EA、A3EAに一致する。これは先行直線動作Aの仮想上の動作終了点は、後行直線動作Bの仮想上の動作開始点と点P2で一致しており、ハンド位置23aは各動作とも仮想的に同一点P2に位置するからである。また、前述したように先行直線動作Aが終了するタイミングと後行直線動作Bが開始するタイミングは同じではなく、後行直線動作Bが仮想上の動作開始/終了点P2から移動を開始するタイミングは、先行直線動作Aが仮想上の動作開始/終了点P2で移動を終了するタイミングよりも時間的に前になるから、後行直線動作Bの最初の制御周期目nB=sBで制御が行なわれる時刻は、先行直線動作Aの最後の制御周期目nA=EAで制御が行われる時刻よりも前の時刻となる。このようにして点P1から点P2までの先行直線動作Aを実現するための先行直線動作用制御位置A1n、A2n、A3nが初期位置A1s、A2s、A3sから終端位置A1E、A2E、A3Eまで演算されるとともに、点P2から点P3までの後行直線動作Bを実現するための後行直線動作用制御位置B1n、B2n、B3nが初期位置B1s、B2s、B3sから終端位置A1E、A2E、A3Eまで演算される。上述したように後行直線動作Bの最初の制御周期目nB=sBで制御が行なわれる時刻は、先行直線動作Aの最後の制御周期目nA=EAで制御が行われる時刻よりも前の時刻となることから、両動作A、Bは重なり合う。両動作A、Bを任意の所望するタイミングで重ね合わせることにより、点P4から点P5までの略円弧状の合成移動軌跡ABを生成でき合成移動軌跡ABに沿ってハンド位置23aを移動させることが可能となる。図9は、先行直線動作Aと後行直線動作Bの速度変化パターンの一例を示している。同図9に示すように、先行直線動作Aは時刻τ1から時刻τ3まで行われる。先行直線動作Aの速度変化パターンは、制御位置A1nA、A2nA、A3nAと制御周期により一義的に定まる。同様に後行直線動作Bは時刻τ2から時刻τ4まで行われる。後行直線動作Bの速度変化パターンは、制御位置B1nB、B2nB、B3nBと制御周期により一義的に定まる。先行直線動作Aが時刻τ1から開始されると、先行直線動作Aが時刻τ3で終了するよりも前の時刻τ2から後行直線動作Bが開始されることになる。時刻τ2から時刻τ3までの期間が、合成移動軌跡ABが先行直線動作Aと後行直線動作Bの重ね合わせにより生成されている期間である。合成移動軌跡ABの速度変化パターンは、先行直線動作Aの速度変化パターンと後行直線動作Bの速度変化パターンとを合成したパターン、つまりそれぞれの速度を加算した速度たとえば期間τ2~τ3で一定速度となる。以上のように、実施例によれば、直線動作A、Bに対応する直線状の移動軌跡とは別に、円弧状の移動軌跡ABを求め、その円弧状の移動軌跡ABに対応するモータ11、12、13の制御位置を予め計算しておく必要がないため、演算処理を簡易に行うことができ、CPUの負荷が軽減され制御の前処理に要する時間を飛躍的に短縮することができるステップ202。移動軌跡Cに沿ってハンド位置23aを移動させるためのモータ11、12、13の目標制御位置の演算つぎに、上記2式のごとく、後行直線動作用制御位置の初期位置B1sB、B2sB、B3sBをそれぞれ、先行直線動作用制御位置の終端位置A1EA、A2EA、A3EAに一致させる条件を付加した上で、たとえば上記1式に示される先行直線動作用制御位置と後行直線動作用制御位置に基づき、ハンド位置23aが移動軌跡Cに沿って移動するための各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nを演算する。この演算は、アクチュエータ目標制御値演算手段43で行われる。すなわち、いま、つぎのように定義する。n:各モータ11、12、13の今回n回目の制御周期n-1:各モータ11、12、13の前回n-1回目の制御周期M1n:モータ11の今回nn周期目の目標制御位置M2n:モータ12の今回nn周期目の目標制御位置M3n:モータ13の今回nn周期目の目標制御位置モータ11、12、13それぞれの今回nn周期目の目標制御位置M1n、M2n、M3nは、一般式として次式、M1n=M1n1A1nA-A1nA1B1nB-B1nB1...3M2n=M2n1A2nA-A2nA1B2nB-B2nB1...4M3n=M3n1A3nA-A3nA1B3nB-B3nB1...5で与えられる。先行直線動作Aのみが行われている区間、つまりハンド位置23aが合成移動軌跡ABに入る前の区間P1~P4における各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nは、上記3、4、5式においてそれぞれ、後行直線動作用制御位置の今回位置と前回位置との差分値B1nB-B1nB1、B2nB-B2nB1、B3nB-B3nB1を省いた次式、M1n=M1n1A1nA-A1nA1...6M2n=M2n1A2nA-A2nA1...7M3n=M3n1A3nA-A3nA1...8で与えられる。先行直線動作Aと後行直線動作Bが同時に実行されている区間、つまりハンド位置23aが合成移動軌跡ABに沿って移動する区間P4~P5における各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nはそれぞれ、上記3、4、5式のごとく、先行直線動作用制御位置の今回位置と前回位置との差分値A1nA-A1nA1、A2nA-A2nA1、A3nA-A3nA1と、後行直線動作用制御位置の今回位置と前回位置との差分値B1nB-B1nB1、B2nB-B2nB1、B3nB-B3nB1とを加算した値A1nA-A1nA1B1nB-B1nB1、A2nA-A2nA1B2nB-B2nB1、A3nA-A3nA1B3nB-B3nB1に基づき演算されることになる。ただし、先行直線動作Aに加えて後行直線動作Bを開始するときには、前述の2式B1sB=A1EA、B2sB=A2EA、B3sB=A3EAを用いて、後行直線動作B開始時の各モータ11、12、13の初期の目標制御位置M1n、M2n、M3nを定めるようにする。後行直線動作Bのみが行われている区間、つまりハンド位置23aが合成移動軌跡ABを抜けた後の区間P5~P3における各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nは、上記3、4、5式においてそれぞれ、先行直線動作用制御位置の今回位置と前回位置との差分値A1nA-A1nA1、A2nA-A2nA1、A3nA-A3nA1を省いた次式、M1n=M1n1B1nB-B1nB1...9M2n=M2n1B2nB-B2nB1...10M3n=M3n1B3nB-B3nB1...11で与えられる。以上のように、各モータ11、12、13の目標制御位置M1n、M2n、M3nは、円弧状の移動軌跡AB専用の制御位置を演算してそれを用いることなく、先行直線動作用制御位置と後行直線動作用制御位置のみを用いてそれらの合成値として求めることができるため、演算処理を簡易に行うことができ、CPUの負荷が軽減され制御の前処理に要する時間を飛躍的に短縮することができるステップ203。モータ11、12、13の制御つぎに上記3~11を用いて目標制御位置M1n、M2n、M3nがそれぞれ得られるようにモータ11、12、13を制御して、ハンド位置23aを移動軌跡Cに沿って移動させる。この制御は、制御手段44で行なわれる。すなわち、上記6、7、8式を用いて、最初の制御周期n=1から逐次各制御周期毎に各モータ11、12、13の位置がそれぞれ目標制御位置M1n、M2n、M3nになるようにモータ11、12、13が駆動制御される。この制御は後行直線動作Bが開始する制御周期まで行なわれる。この結果、ハンド位置23aは、移動開始点P1から点P4まで直線状に移動する。つぎに、前述の2式B1sB=A1EA、B2sB=A2EA、B3sB=A3EAの条件を付加した上で、上記3、4、5式を用いて、後行直線動作Bが開始される制御周期から逐次各制御周期毎に各モータ11、12、13の位置がそれぞれ目標制御位置M1n、M2n、M3nになるようにモータ11、12、13が駆動制御される。この制御は先行直線動作Aが終了する制御周期まで行なわれる。この結果、ハンド位置23aは、点P4から点P5まで略円弧状に合成移動軌跡ABに沿って移動する。つぎに、上記9、10、11式を用いて、先行直線動作Aが終了して後行直線動作Bが開始される制御周期から逐次各制御周期毎に各モータ11、12、13の位置がそれぞれ目標制御位置M1n、M2n、M3nになるようにモータ11、12、13が駆動制御される。この制御は後行直線動作Bが終了する制御周期まで行なわれる。この結果、ハンド位置23aは、点P5から移動終了点P3まで直線状に移動する。以上のようにハンド位置23aは、移動開始点P1から合成移動軌跡ABを含む移動軌跡Cに沿って移動終了点P3まで移動されるため、ワークWを高速かつスムーズに搬送させることができるステップ204。以上のように、この実施例によれば、所望する移動軌跡Cの途中で、2つの直線動作A、Bを合成した合成移動軌跡ABに沿ってハンド位置23aを移動させるに際して、合成移動軌跡AB上の制御位置は、先行動作用制御値と後行動作用制御値から求められ、予め合成移動軌跡を求めておく必要はない。なお、先行動作用制御位置と後行動作用制御位置は、制御動作中に所定の制御周期毎に得られるものであり、予めこれら制御値を求めておき所定のメモリに記憶しておくという前処理は不要である。よって合成移動軌跡を予め計算しておくという前処理に要する時間を短縮することができる。さらにいえば、先行動作用制御位置を求めるための先行動作用変換関数FA、後行動作用制御位置を求めるための後行動作用変換関数FBのみを予め用意しておけばよく、合成移動軌跡上の制御位置を求めるための特別な関数を用意することは不要である。このように本実施例によれば、所望する移動軌跡の途中で、少なくとも2つの動作を合成した合成移動軌跡ABに沿ってツールを移動させるに際して、予め合成移動軌跡ABを求めておくという前処理や合成移動軌跡AB上の制御位置を求めるための特別な関数が不要となるため、ロボット制御の前処理に要する処理時間を飛躍的に短縮させることができる。この結果、演算処理の負担が減りロボット制御システムの簡素化を図ることができる。さらにいえば、本実施例では、先行動作用変換関数FA、後行動作用変換関数FBの関数値のみから合成移動軌跡ABを含む全軌跡上の逐次の制御位置が求められる。ここで、従来技術においては、合成移動軌跡に達すると、合成移動軌跡上の制御位置を求めるために合成移動軌跡上の制御位置を求めるための特別な関数を用いた演算処理が新たに演算負荷として加わるために、処理能力の高い演算装置処理能力の高いCPUが必要であったが、本実施例によれば、比較的処理能力の低いで演算装置処理能力の低いCPUで足りる。以上の説明では、2つの直線動作A、Bを合成した合成移動軌跡ABに沿ってハンド位置23aを移動させる場合を例にとり説明した。しかし、直線動作と旋回動作を合成した合成移動軌跡に沿ってハンド位置23aを移動させる実施も当然可能である。図10は、途中に直線動作Aと旋回動作Dを合成した合成移動軌跡ADと、旋回動作Dと直線動作Bを含む合成移動軌跡DBを含む移動軌跡Cを例示している。なお、図10は、従来技術として説明した図2に対応する移動軌跡である。すなわち、移動開始点P1から点P2方向に向けてハンド位置23aの直線動作Aを行い、つぎに点P2の手前の点P5から合成移動軌跡ADに沿って点P2をショートカットするように点P6まで移動させ、つぎに点P6から点P3に向けてハンド位置23aの旋回動作Dを行い、つぎに点P3の手前の点P7から点P8まで合成移動軌跡DBに沿って点P3をショートカットするように点P8まで移動させ、つぎに点P8から移動終了点P4までハンド位置23aの直線動作Bを行い、ワークWを一方のプロセスチャンバから他方のプロセスチャンバまで搬送させる場合を想定する。この場合も前述の実施例と同様にして制御を行うことができる。なお、以下では重複する詳細な説明は省略する。仮想上の動作開始/終了点P2、P3の探索合成移動軌跡ADに沿って移動させるための仮想上の動作開始/終了点P2の探索について合成移動軌跡ADに入る前より行なわれるべき先行直線動作Aの仮想上の動作終了点と、合成移動軌跡ADを抜けた以後も行なわれるべき後行旋回動作Dの仮想上の動作開始点とが一致するように仮想上の動作開始/終了点P2が探索される。合成移動軌跡DBに沿って移動させるための仮想上の動作開始/終了点P3の探索について合成移動軌跡DBに入る前より行なわれるべき先行旋回動作Dの仮想上の動作終了点と、合成移動軌跡DBを抜けた以後も行なわれるべき後行直線動作Bの仮想上の動作開始点とが一致するように仮想上の動作開始/終了点P3が探索される。直線動作A,旋回動作D、直線動作B毎のモータ11、12、13の制御位置の演算合成移動軌跡ADに沿って移動させるためのモータ制御位置の演算先行直線動作Aが仮想上の動作開始/終了点P2で終了し、かつ後行旋回動作Dが仮想上の動作開始/終了点P2から、先行直線動作Aが終了するよりも時間的に前に開始するように、先行直線動作Aを実現するためのモータ11、12、13それぞれの先行直線動作用制御位置A1nA、A2nA、A3nAを初期位置A1sA、A2sA、A3sAから終端値A1EA、A2EA、A3EAまで演算するとともに、後行旋回動作Dを実現するためのモータ11、12、13それぞれの後行旋回動作用制御位置D1nD、D2nD、D3nDを初期位置D1sD、D2sD、D3sDから終端位置D1ED、D2ED、D3EDまで演算する。詳細な演算は、前述の1、2式においてBをDに読み替えたものとして示される。合成移動軌跡DBに沿って移動させるためのモータ制御位置の演算先行旋回動作Dが仮想上の動作開始/終了点P3で終了し、かつ後行直線動作Bが仮想上の動作開始/終了点P3から、先行旋回動作Dが終了するよりも時間的に前に開始するように、先行旋回動作Dを実現するためのモータ11、12、13それぞれの先行旋回動作用制御位置D1nD、D2nD、D3nDを初期位置D1sD、D2sD、D3sDから終端値D1ED、D2ED、D3EDまで演算するとともに、後行直線動作Bを実現するためのモータ11、12、13それぞれの後行直線動作用制御位置B1nB、B2nB、B3nBを初期位置B1sB、B2sB、B3sBから終端位置B1EB、B2EB、B3EBまで演算する。詳細な演算は、前述の1、2式においてAをDに読み替えたものとして示される。なお旋回動作Dに関しての重複した演算は当然省略することができる。移動軌跡Cに沿ってハンド位置23aを移動させるためのモータ11、12、13の目標制御位置の演算合成移動軌跡ADに沿って移動させるためのモータ目標制御位置の演算後行旋回動作用制御位置の初期位置D1sD、D2sD、D3sDをそれぞれ、先行直線動作用制御位置の終端位置A1EA、A2EA、A3EAに一致させる条件を付加した上で、先行直線動作用制御位置と後行旋回動作用制御位置に基づき、ハンド位置23aが移動軌跡Cに沿って移動するための各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nを演算する。詳細な演算は、前述の2~11式においてBをDに読み替えたものとして示される。合成移動軌跡DBに沿って移動させるためのモータ目標制御位置の演算後行直線動作用制御位置の初期位置B1sB、B2sB、B3sBをそれぞれ、先行旋回動作用制御位置の終端位置D1ED、D2ED、D3EDに一致させる条件を付加した上で、先行旋回動作用制御位置と後行直線動作用制御位置に基づき、ハンド位置23aが移動軌跡Cに沿って移動するための各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nを演算する。詳細な演算は、前述の2~11式においてAをDに読み替えたものとして示される。なお旋回動作Dに関しての重複した演算は当然省略することができる。モータ11、12、13の制御つぎに上記のごとく読み替えた3~11を用いて目標制御位置M1n、M2n、M3nがそれぞれ得られるようにモータ11、12、13を制御して、ハンド位置23aを移動軌跡Cに沿って移動させる。この結果、ハンド位置23aは、移動開始点P1から点P5まで直線状に移動し、ついで点P5から点P6まで略円弧状に合成移動軌跡ADに沿って移動し、ついで点P6から点P7まで旋回移動し、ついで点P7から点P8まで略円弧状に合成移動軌跡DBに沿って移動し、ついで点P8から移動終了点P4まで直線状に移動する。このためワークWを高速かつスムーズに搬送させながらも、合成移動軌跡ADおよびDBを予め求めておくという前処理や合成移動軌跡ADおよびDB上の制御値を求めるための特別な関数が不要となるため、ロボット制御の前処理に要する処理時間を飛躍的に短縮させることができ、その結果として、演算処理の負担が減りロボット制御システムの簡素化を図ることができる。以上の説明では、直線動作と直線動作を合成する例、直線動作と旋回動作を合成する例について説明したが、これらはあくまで一例であり、任意の動作同士を同様に合成する実施も当然可能である。また2つの動作を合成する場合を例にとり説明したが、3以上の動作を同様に合成する実施も当然可能である。複数のモータの複合的な動作として直線動作、旋回動作等が実現され、それらを合成する場合を例にとり説明した。しかし、一のモータによる動作と一のモータによる動作とを合成する実施も当然可能である。ここで、仮想モータという考え方がある。仮想モータとは、ロボットの動作に応じた専用のモータがあるという考え方である。たとえばハンドを直線的に動かすときにはハンドを直線状に移動させる仮想モータがあり、ハンドを旋回動作させるときにはハンドを旋回動作させる仮想モータがあると考える。仮想モータにも本発明を適用することができる。たとえば図10に示す合成移動軌跡に沿ってハンド位置23aを移動させる場合には、直線動作に対応する仮想モータと旋回動作に対応する仮想モータを定め、先行直線動作用制御値直動位置および後行旋回動作用制御値旋回角度をそれぞれ、先行動作に対応する仮想モータの制御値および後行旋回動作に対応する仮想モータの制御値として同様の演算を行えばよい。以上実施例では、ロボットとして水平多関節ロボットを想定して説明したが、これはあくまで一例であり、垂直多関節ロボットなどの任意の形式のロボットに適用することができる。また実施例では、ロボットを駆動するアクチュエータとしてモータを想定したが、シリンダなどの他の任意のアクチュエータによって駆動されるロボットにも当然本発明を適用することができる。またアクチュエータを駆動する媒体は、電気、油圧、空圧等任意のものを当然使用することができる。また、ツールとしてハンドを備えたワーク搬送ロボットを想定して説明したが、本発明はワーク搬送ロボットに限定されるわけではなく、溶接作業用のトーチ、切断加工用のトーチなど他の任意のツールを備えたロボットに当然適用することができる。図1は従来技術1を説明する図である。図2は従来技術2を説明する図である。図3は、実施例のロボット制御システムの構成を示す図である。図4a、bは、ロボットの動きを水平面で概念的に示した図である。図5a、bはそれぞれ、ハンド位置を直線動作させる場合、ハンド位置を旋回動作させる場合の移動軌跡と、モータの駆動制御指令との関係を示した図である。図6は、実施例の移動軌跡の一例を示した図である。図7は実施例の処理の流れを概略的に示すフローチャートである。図8は図7の処理を詳細に示したフローチャートである。図9は、先行直線動作と後行直線動作の速度変化パターンの一例を示した図である。図10は、図2と同様の移動軌跡を示した図である。以下、図面を参照して本発明に係るロボットの制御装置および制御方法の実施の形態について説明する。なお、以下では、ロボットとして水平多関節ロボットとして構成され、半導体ウェーハや液晶基板などを搬送するワーク搬送ロボットを想定して説明する。図3は、実施例のロボット制御システムの構成を示す図である。同図3に示すように、ロボット制御システムは、大きくは、命令用PCパーソナルコンピュータ30と、ロボットコントローラ40と、モータドライバ51、52、53と、ロボット10とからなる。ロボット10は、図3中に斜視図にて示すように、第1軸1、第2軸2、第3軸3を備えた水平多関節ロボットである。ロボット10は、基台29と、第1リンク21と、第2リンク22と、ハンド23と、モータ11と、モータ12と、モータ13とを備えている。モータ11、12、13はそれぞれ、ロボット10の各軸1、2、3を駆動するアクチュエータを構成する。この実施例では、モータ11、12、13は、回転駆動するアクチュエータであり、制御値として制御位置回転位置が与えられて駆動されるものとする。モータ11は、第1軸1を回動するアクチュエータであり、モータ12は、第2軸2を回動するアクチュエータであり、モータ13は、第3軸3を回動するアクチュエータである。第1リンク21は、基台29に対してその一端が回動自在に連結されており、第1軸1が回動することによって基台29に対して水平方向に相対的に回動する。第2リンク22は、その一端が第1リンク21の他端に回動自在に連結されており、第2軸2が回動することによって第1リンク21に対して水平方向に相対的に回動する。ハンド23は、その上にワークWが載置され、場合によってはワークWを把持する機構を備えたツールを構成しており、第2リンク22の他端に回動自在に連結されており、第3軸3が回動することによって第2リンク22に対して水平方向に相対的に回動する。なお図では、基台29を鉛直方向に移動させるモータ等についての機構の図示は、省略している。モータ11は、たとえば、その回転軸が第1軸1に一致する位置に設けられている。同様に、モータ12は、たとえば、その回転軸が第2軸2に一致する位置に設けられている。同様に、モータ13は、たとえば、その回転軸が第3軸3に一致する位置に設けられている。図4は、ロボット10の動きを水平面で概念的に示した図であり、各軸1、2、3の回動前図4aと、各軸1、2、3の回動後図4bにおけるロボット10の位置姿勢変化の一例を示している。モータ11、12、13を駆動制御し、各軸1、2、3を、図中矢印に示すごとく左回りまたは右回りに回動させることで、ハンド23の基準点23aたとえばハンド23の中心点;以下、ハンド位置23aというを水平方向の所望する移動軌跡に沿って移動させて、ワークWを移動開始点P1から移動開始点P3へ搬送させることができる。図5a、bはそれぞれ、ハンド位置23aを直線動作させる場合、ハンド位置23aを旋回動作させる場合の移動軌跡と、モータ11、12、13の駆動制御指令との関係を示している。図5aに示すように、モータ11、モータ12、モータ13をそれぞれ、1:-2:1の速度比率で駆動制御することにより、ハンド位置23aを直線動作させることができる。なお、モータ11、モータ12、モータ13の回転方向を正逆反対にすることにより、ハンド位置23aが直線動作する方向を正逆反対伸長方向、縮退方向にすることができる。図5bに示すように、モータ12、13の回転を停止させモータ11のみを駆動制御することにより、ハンド位置23aを旋回動作させることができる。なお、モータ11の回転方向を正逆反対にすることにより、ハンド位置23aが旋回動作する方向を正逆反対左旋回、右旋回にすることができる。図6は、実施例の移動軌跡の一例を示している。実施例では、移動開始点P1から移動終了点P3まで移動軌跡Cに沿って移動させるものとする。この移動軌跡Cは、移動軌跡Cの途中で、直線動作Aと直線動作Bとを合成した合成移動軌跡ABを含んでいる。さて図3において命令用PC30と、ロボットコントローラ40と、モータドライバ51、52、53は、モータ11、12、13を駆動制御する装置を構成する。すなわち、命令用PC30からは、移動軌跡Cの移動終了点P3まで移動させることを指示する移動命令が出力され、ロボットコントローラ40に入力される。ロボットコントローラ40は、仮想上の動作開始/終了点探索手段41と、制御値演算手段42と、アクチュエータ目標制御値演算手段43と、制御手段44を構成するドライバ通信部45と、メモリ46を備えている。仮想上の動作開始/終了点探索手段41と、制御値演算手段42と、アクチュエータ目標制御値演算手段43は、CPUによって構成され、図7および詳しくは図8に示される制御プログラムにしたがいメモリ46に記憶されたデータを用いて演算処理を順次実行する。アクチュエータ目標制御値演算手段43では、最終的に各モータ11、12、13の制御周期毎の目標制御位置が求められる。各モータ11、12、13の制御周期毎の目標制御位置は、ドライバ通信部45に与えられる。ドライバ通信部45は、インターフェースを介して目標制御位置に位置させるための位置指令をモータドライバ51、52、53に与える。モータドライバ51、52、53は、制御手段44を構成する。モータドライバ51、52、53はそれぞれ位置指令に対応する駆動信号をモータ11、12、13に出力する。これによりモータ11、12、13が駆動制御され、制御周期毎に目標制御位置に位置され、その結果、ハンド位置23aは、移動開始点P1から移動軌跡Cに沿って移動終了点P3まで移動される。以下、図7および図8のフローチャートで行われる処理の手順について図6を併せ参照して説明する。図7は、ロボットコントローラ40で行われる処理の流れを概略的に示す。まず、命令用PC30から移動命令が入力されたか否かが判断されるステップ101。移動命令が入力されたと判断されるとステップ101の判断Y、つぎに入力された移動命令を実現するための各動作A、Bが求められるステップ102。つぎに動作A、Bごとに制御位置が演算されるステップ103、104。つぎに動作A,Bごとの制御位置の差分値が加算されて、移動軌跡Cに沿って移動させるための目標制御位置が求められるステップ105。つぎに目標制御位置に位置させるようにモータ11、12、13が制御されるステップ106。図8は、図7のステップ102~105の処理を詳細に示している。仮想上の動作開始/終了点P2の探索図7のステップ102では、動作A、動作Bが求められ、動作Aの仮想上の動作終了点および動作Bの仮想上の動作開始点である仮想上の動作開始/終了点P2が探索される。メモリ46には、ハンド位置23aの現在位置P1を含むハンド23の動きを規制する規制データが記憶されている。規制データは、ロボット10の現在の位置、姿勢、ロボット10の動作環境たとえば半導体製造装置の既知の寸法、ロボット10の動作範囲などを考慮して予め記憶、格納しておくものとする。まず、移動命令として与えられる移動終了点はP3であるが、移動終了点P3は、たとえばプロセスチャンバのゲート90内の位置であるとすると、ゲート90に対して垂直な方向にワークWを搬入しなければならないという制限により、移動終了点P3における移動方向V3は、同ゲート90に対する垂直な方向として一義的に定まる。また移動終了点P3付近の移動区間では、旋回動作は不可能であり、直線動作のみ行なえるという制限があるものとする。したがって、これら制限データを考慮すると、移動終了点P3までハンド位置23aを移動させるには、移動方向V3の方向へ移動終了点P3までの直線動作Bを実行しなければならないことがわかる。ハンド位置23aの現在位置P1は、たとえば前回の移動命令による移動軌跡の移動終了位置として、あるいはハンド位置23aの計測位置として与えられる。ハンド位置23aの現在位置P1における移動方向V1は、前回の移動命令による移動軌跡の移動終了位置における移動方向として与えられる。今回の移動命令が初期の移動命令であり、移動開始点P1における移動方向に前回の移動命令の制限を受けないのであれば、動作環境を考慮して最適な移動方向V1に定められる。また移動開始点P1付近の移動区間では、直線動作のみ行なえるという制限があるものとする。したがって、これら制限データを考慮すると、移動開始点P1からハンド位置23aを移動させるには、移動開始点P1を始点として移動方向V1の方向への直線動作Aを実行しなければならないことがわかる。また、今回の移動命令は、移動開始点P1から移動終了点P3までの移動であるから、移動開始点P1を始点とする直線動作Aは、移動終了点P3を終点とする直線動作Bに先行する直線動作となり、直線動作Bは直線動作Aに後行する直線動作となる。先行直線動作Aと後行直線動作Bが求められると、その交点としての仮想上の動作開始/終了点P2が探索される。先行直線動作Aと後行直線動作Bとの交点P2は、先行直線動作Aの仮想上の動作終了点となり、後行直線動作Bの仮想上の動作開始点となる。仮想上と定義したのは、ハンド位置23aは、実際には点P2には位置しないからである。本実施例では、先行直線動作Aと後行直線動作Bの途中に先行直線動作Aと先行直線動作Bとを合成した合成移動軌跡ABを生成してハンド位置23aを途中の仮想上の動作開始/終了点P2で停止させることなく合成移動軌跡ABに沿って高速かつスムーズに移動させるようにしている。以上のようにして、合成移動軌跡ABに入る前より行なわれるべき先行直線動作Aの仮想上の動作終了点と、合成移動軌跡ABを抜けた以後も行なわれるべき後行直線動作Bの仮想上の動作開始点とが一致するように仮想上の動作開始/終了点P2が演算される。この演算は、仮想上の動作開始/終了点探索手段41で行われる。なお、この例では、仮想上の動作開始/終了点P2を演算により探索しているが、仮想上の動作開始/終了点P2を教示により探索してもよい。たとえば、ロボット10を実際に動作させて、ハンド位置23aを先行直線動作Aと後行直線動作Bに沿って移動させて仮想上の動作開始/終了点P2を教示することができる。このように実施例によれば、先行直線動作Aと後行直線動作Bを求め仮想上の動作開始/終了点P2を探索するだけでよく、合成移動軌跡ABを演算により求めたり教示により求めたりする必要がないので、演算処理や教示作業を簡易に行うことができ、CPUの負荷が軽減されるとともに制御の前処理に要する時間を飛躍的に短縮することができるステップ201。以下、制御動作中に行なわれる処理内容について説明する。なお、以下のステップ202における直線動作A,B毎のモータ11、12、13の制御位置の演算処理およびステップ203における移動軌跡Cに沿ってハンド位置23aを移動させるためのモータ11、12、13の目標制御位置の演算処理は、制御動作中に所定の周期毎に行われるものである。直線動作Aに対応するモータ11、12、13の制御位置は、後述する先行動作用の変換関数FAに基づき求められ、直線動作Bに対応するモータ11、12、13の制御位置は、後述する後行動作用の変換関数FBに基づき求められる、変換関数FA、FBは、予め用意されておかれる。直線動作A,B毎のモータ11、12、13の制御位置の演算つぎに、先行直線動作Aが仮想上の動作開始/終了点P2で終了し、かつ後行直線動作Bが仮想上の動作開始/終了点P2から、先行直線動作Aが終了するよりも時間的に前に開始するように、先行直線動作Aを実現するためのモータ11、12、13それぞれの先行直線動作用制御位置A1nA、A2nA、A3nAを初期位置A1sA、A2sA、A3sAから終端値A1EA、A2EA、A3EAまで演算するとともに、後行直線動作Bを実現するためのモータ11、12、13それぞれの後行直線動作用制御位置B1nB、B2nB、B3nBを初期位置B1sB、B2sB、B3sBから終端位置B1EB、B2EB、B3EBまで演算する。この演算は、制御値演算手段42で行われる。モータ11、12、13は、所定の制御周期毎に駆動制御されるため、制御周期の回数をnで表す。制御周期はコントローラ40の演算処理のサイクルタイム等を考慮して定められる。すなわち、いま、つぎのように定義する。nA:先行直線動作Aにおける移動開始からn回目の制御周期nB:後行直線動作Bにおける移動開始からn回目の制御周期A1sA:先行直線動作Aを実現するためのモータ11の初期制御位置A2sA:先行直線動作Aを実現するためのモータ12の初期制御位置A3sA:先行直線動作Aを実現するためのモータ13の初期制御位置A1nA:先行直線動作Aを実現するためのモータ11の現在n周期目制御位置A2nA:先行直線動作Aを実現するためのモータ12の現在n周期目制御位置A3nA:先行直線動作Aを実現するためのモータ13の現在n周期目制御位置A1EA:先行直線動作Aを実現するためのモータ11の終端制御位置A2EA:先行直線動作Aを実現するためのモータ12の終端制御位置A3EA:先行直線動作Aを実現するためのモータ13の終端制御位置B1sB:後行直線動作Bを実現するためのモータ11の初期制御位置B2sB:後行直線動作Bを実現するためのモータ12の初期制御位置B3sB:後行直線動作Bを実現するためのモータ13の初期制御位置B1nB:後行直線動作Bを実現するためのモータ11の現在n周期目制御位置B2nB:後行直線動作Bを実現するためのモータ12の現在n周期目制御位置B3nB:後行直線動作Bを実現するためのモータ13の現在n周期目制御位置B1EB:後行直線動作Bを実現するためのモータ11の終端制御位置B2EB:後行直線動作Bを実現するためのモータ12の終端制御位置B3EB:後行直線動作Bを実現するためのモータ13の終端制御位置ここで先行直線動作用制御位置A1nA、A2nA、A3nAnA=sA、...nA-1、nA...、EAおよび後行直線動作用制御位置B1nB、B2nB、B3nBnB=sB、...nB-1、nB...、EBはそれぞれ、ハンド位置23aに対応するモータ11、12、12の制御位置として演算することができる。一般に、ロボット10のハンド位置23a定義軸の位置の逐次の位置とモータ11、12、13の制御位置との関係は1対1との関係にあり、ハンド位置23aの逐次の位置を演算あるいは教示により求め、ロボット10の逆運動学に基づき逆変換することにより、その逐次のハンド位置23aに対応するモータ11、12、13の逐次の制御位置を一義的な数値として求めることができる。この場合、先行直線動作用制御位置A1nA、A2nA、A3nAnA=sA、...nA-1、nA...、EAおよび後行直線動作用制御位置B1nB、B2nB、B3nBnB=sB、...nB-1、nB...、EBを、逐次のハンド位置23aに対応する角度位置として数値で求めてもよく、逐次のハンド位置23aから逐次のモータ制御位置を演算する変換関数を用意しておき、その変換関数の関数値として求めてもよい。たとえば、次式、A1nA=FA1nAA2nA=FA2nAA3nA=FA3nAB1nB=FB1nBB2nB=FB2nBB3nB=FB3nB...1のごとく、変換関数Fx、つまり動作Xにおけるモータ1aのn周期目の制御位置Xanを計算する関数を用意しておき、その変換関数の関数値として逐次の動作用制御位置を求めることができる。変換関数は、通常は、逐次のハンド位置23aから各モータ11、12、13の制御位置を計算する関数として与えられる。なお、次式、B1sB=A1EAB2sB=A2EAB3sB=A3EA...2に示されるごとく、後行直線動作用制御位置の初期位置B1sB、B2sB、B3sBはそれぞれ、先行直線動作用制御位置の終端位置A1EA、A2EA、A3EAに一致する。これは先行直線動作Aの仮想上の動作終了点は、後行直線動作Bの仮想上の動作開始点と点P2で一致しており、ハンド位置23aは各動作とも仮想的に同一点P2に位置するからである。また、前述したように先行直線動作Aが終了するタイミングと後行直線動作Bが開始するタイミングは同じではなく、後行直線動作Bが仮想上の動作開始/終了点P2から移動を開始するタイミングは、先行直線動作Aが仮想上の動作開始/終了点P2で移動を終了するタイミングよりも時間的に前になるから、後行直線動作Bの最初の制御周期目nB=sBで制御が行なわれる時刻は、先行直線動作Aの最後の制御周期目nA=EAで制御が行われる時刻よりも前の時刻となる。このようにして点P1から点P2までの先行直線動作Aを実現するための先行直線動作用制御位置A1n、A2n、A3nが初期位置A1s、A2s、A3sから終端位置A1E、A2E、A3Eまで演算されるとともに、点P2から点P3までの後行直線動作Bを実現するための後行直線動作用制御位置B1n、B2n、B3nが初期位置B1s、B2s、B3sから終端位置A1E、A2E、A3Eまで演算される。上述したように後行直線動作Bの最初の制御周期目nB=sBで制御が行なわれる時刻は、先行直線動作Aの最後の制御周期目nA=EAで制御が行われる時刻よりも前の時刻となることから、両動作A、Bは重なり合う。両動作A、Bを任意の所望するタイミングで重ね合わせることにより、点P4から点P5までの略円弧状の合成移動軌跡ABを生成でき合成移動軌跡ABに沿ってハンド位置23aを移動させることが可能となる。図9は、先行直線動作Aと後行直線動作Bの速度変化パターンの一例を示している。同図9に示すように、先行直線動作Aは時刻τ1から時刻τ3まで行われる。先行直線動作Aの速度変化パターンは、制御位置A1nA、A2nA、A3nAと制御周期により一義的に定まる。同様に後行直線動作Bは時刻τ2から時刻τ4まで行われる。後行直線動作Bの速度変化パターンは、制御位置B1nB、B2nB、B3nBと制御周期により一義的に定まる。先行直線動作Aが時刻τ1から開始されると、先行直線動作Aが時刻τ3で終了するよりも前の時刻τ2から後行直線動作Bが開始されることになる。時刻τ2から時刻τ3までの期間が、合成移動軌跡ABが先行直線動作Aと後行直線動作Bの重ね合わせにより生成されている期間である。合成移動軌跡ABの速度変化パターンは、先行直線動作Aの速度変化パターンと後行直線動作Bの速度変化パターンとを合成したパターン、つまりそれぞれの速度を加算した速度たとえば期間τ2~τ3で一定速度となる。以上のように、実施例によれば、直線動作A、Bに対応する直線状の移動軌跡とは別に、円弧状の移動軌跡ABを求め、その円弧状の移動軌跡ABに対応するモータ11、12、13の制御位置を予め計算しておく必要がないため、演算処理を簡易に行うことができ、CPUの負荷が軽減され制御の前処理に要する時間を飛躍的に短縮することができるステップ202。移動軌跡Cに沿ってハンド位置23aを移動させるためのモータ11、12、13の目標制御位置の演算つぎに、上記2式のごとく、後行直線動作用制御位置の初期位置B1sB、B2sB、B3sBをそれぞれ、先行直線動作用制御位置の終端位置A1EA、A2EA、A3EAに一致させる条件を付加した上で、たとえば上記1式に示される先行直線動作用制御位置と後行直線動作用制御位置に基づき、ハンド位置23aが移動軌跡Cに沿って移動するための各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nを演算する。この演算は、アクチュエータ目標制御値演算手段43で行われる。すなわち、いま、つぎのように定義する。n:各モータ11、12、13の今回n回目の制御周期n-1:各モータ11、12、13の前回n-1回目の制御周期M1n:モータ11の今回nn周期目の目標制御位置M2n:モータ12の今回nn周期目の目標制御位置M3n:モータ13の今回nn周期目の目標制御位置モータ11、12、13それぞれの今回nn周期目の目標制御位置M1n、M2n、M3nは、一般式として次式、M1n=M1n1A1nA-A1nA1B1nB-B1nB1...3M2n=M2n1A2nA-A2nA1B2nB-B2nB1...4M3n=M3n1A3nA-A3nA1B3nB-B3nB1...5で与えられる。先行直線動作Aのみが行われている区間、つまりハンド位置23aが合成移動軌跡ABに入る前の区間P1~P4における各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nは、上記3、4、5式においてそれぞれ、後行直線動作用制御位置の今回位置と前回位置との差分値B1nB-B1nB1、B2nB-B2nB1、B3nB-B3nB1を省いた次式、M1n=M1n1A1nA-A1nA1...6M2n=M2n1A2nA-A2nA1...7M3n=M3n1A3nA-A3nA1...8で与えられる。先行直線動作Aと後行直線動作Bが同時に実行されている区間、つまりハンド位置23aが合成移動軌跡ABに沿って移動する区間P4~P5における各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nはそれぞれ、上記3、4、5式のごとく、先行直線動作用制御位置の今回位置と前回位置との差分値A1nA-A1nA1、A2nA-A2nA1、A3nA-A3nA1と、後行直線動作用制御位置の今回位置と前回位置との差分値B1nB-B1nB1、B2nB-B2nB1、B3nB-B3nB1とを加算した値A1nA-A1nA1B1nB-B1nB1、A2nA-A2nA1B2nB-B2nB1、A3nA-A3nA1B3nB-B3nB1に基づき演算されることになる。ただし、先行直線動作Aに加えて後行直線動作Bを開始するときには、前述の2式B1sB=A1EA、B2sB=A2EA、B3sB=A3EAを用いて、後行直線動作B開始時の各モータ11、12、13の初期の目標制御位置M1n、M2n、M3nを定めるようにする。後行直線動作Bのみが行われている区間、つまりハンド位置23aが合成移動軌跡ABを抜けた後の区間P5~P3における各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nは、上記3、4、5式においてそれぞれ、先行直線動作用制御位置の今回位置と前回位置との差分値A1nA-A1nA1、A2nA-A2nA1、A3nA-A3nA1を省いた次式、M1n=M1n1B1nB-B1nB1...9M2n=M2n1B2nB-B2nB1...10M3n=M3n1B3nB-B3nB1...11で与えられる。以上のように、各モータ11、12、13の目標制御位置M1n、M2n、M3nは、円弧状の移動軌跡AB専用の制御位置を演算してそれを用いることなく、先行直線動作用制御位置と後行直線動作用制御位置のみを用いてそれらの合成値として求めることができるため、演算処理を簡易に行うことができ、CPUの負荷が軽減され制御の前処理に要する時間を飛躍的に短縮することができるステップ203。モータ11、12、13の制御つぎに上記3~11を用いて目標制御位置M1n、M2n、M3nがそれぞれ得られるようにモータ11、12、13を制御して、ハンド位置23aを移動軌跡Cに沿って移動させる。この制御は、制御手段44で行なわれる。すなわち、上記6、7、8式を用いて、最初の制御周期n=1から逐次各制御周期毎に各モータ11、12、13の位置がそれぞれ目標制御位置M1n、M2n、M3nになるようにモータ11、12、13が駆動制御される。この制御は後行直線動作Bが開始する制御周期まで行なわれる。この結果、ハンド位置23aは、移動開始点P1から点P4まで直線状に移動する。つぎに、前述の2式B1sB=A1EA、B2sB=A2EA、B3sB=A3EAの条件を付加した上で、上記3、4、5式を用いて、後行直線動作Bが開始される制御周期から逐次各制御周期毎に各モータ11、12、13の位置がそれぞれ目標制御位置M1n、M2n、M3nになるようにモータ11、12、13が駆動制御される。この制御は先行直線動作Aが終了する制御周期まで行なわれる。この結果、ハンド位置23aは、点P4から点P5まで略円弧状に合成移動軌跡ABに沿って移動する。つぎに、上記9、10、11式を用いて、先行直線動作Aが終了して後行直線動作Bが開始される制御周期から逐次各制御周期毎に各モータ11、12、13の位置がそれぞれ目標制御位置M1n、M2n、M3nになるようにモータ11、12、13が駆動制御される。この制御は後行直線動作Bが終了する制御周期まで行なわれる。この結果、ハンド位置23aは、点P5から移動終了点P3まで直線状に移動する。以上のようにハンド位置23aは、移動開始点P1から合成移動軌跡ABを含む移動軌跡Cに沿って移動終了点P3まで移動されるため、ワークWを高速かつスムーズに搬送させることができるステップ204。以上のように、この実施例によれば、所望する移動軌跡Cの途中で、2つの直線動作A、Bを合成した合成移動軌跡ABに沿ってハンド位置23aを移動させるに際して、合成移動軌跡AB上の制御位置は、先行動作用制御値と後行動作用制御値から求められ、予め合成移動軌跡を求めておく必要はない。なお、先行動作用制御位置と後行動作用制御位置は、制御動作中に所定の制御周期毎に得られるものであり、予めこれら制御値を求めておき所定のメモリに記憶しておくという前処理は不要である。よって合成移動軌跡を予め計算しておくという前処理に要する時間を短縮することができる。さらにいえば、先行動作用制御位置を求めるための先行動作用変換関数FA、後行動作用制御位置を求めるための後行動作用変換関数FBのみを予め用意しておけばよく、合成移動軌跡上の制御位置を求めるための特別な関数を用意することは不要である。このように本実施例によれば、所望する移動軌跡の途中で、少なくとも2つの動作を合成した合成移動軌跡ABに沿ってツールを移動させるに際して、予め合成移動軌跡ABを求めておくという前処理や合成移動軌跡AB上の制御位置を求めるための特別な関数が不要となるため、ロボット制御の前処理に要する処理時間を飛躍的に短縮させることができる。この結果、演算処理の負担が減りロボット制御システムの簡素化を図ることができる。さらにいえば、本実施例では、先行動作用変換関数FA、後行動作用変換関数FBの関数値のみから合成移動軌跡ABを含む全軌跡上の逐次の制御位置が求められる。ここで、従来技術においては、合成移動軌跡に達すると、合成移動軌跡上の制御位置を求めるために合成移動軌跡上の制御位置を求めるための特別な関数を用いた演算処理が新たに演算負荷として加わるために、処理能力の高い演算装置処理能力の高いCPUが必要であったが、本実施例によれば、比較的処理能力の低いで演算装置処理能力の低いCPUで足りる。以上の説明では、2つの直線動作A、Bを合成した合成移動軌跡ABに沿ってハンド位置23aを移動させる場合を例にとり説明した。しかし、直線動作と旋回動作を合成した合成移動軌跡に沿ってハンド位置23aを移動させる実施も当然可能である。図10は、途中に直線動作Aと旋回動作Dを合成した合成移動軌跡ADと、旋回動作Dと直線動作Bを含む合成移動軌跡DBを含む移動軌跡Cを例示している。なお、図10は、従来技術として説明した図2に対応する移動軌跡である。すなわち、移動開始点P1から点P2方向に向けてハンド位置23aの直線動作Aを行い、つぎに点P2の手前の点P5から合成移動軌跡ADに沿って点P2をショートカットするように点P6まで移動させ、つぎに点P6から点P3に向けてハンド位置23aの旋回動作Dを行い、つぎに点P3の手前の点P7から点P8まで合成移動軌跡DBに沿って点P3をショートカットするように点P8まで移動させ、つぎに点P8から移動終了点P4までハンド位置23aの直線動作Bを行い、ワークWを一方のプロセスチャンバから他方のプロセスチャンバまで搬送させる場合を想定する。この場合も前述の実施例と同様にして制御を行うことができる。なお、以下では重複する詳細な説明は省略する。仮想上の動作開始/終了点P2、P3の探索合成移動軌跡ADに沿って移動させるための仮想上の動作開始/終了点P2の探索について合成移動軌跡ADに入る前より行なわれるべき先行直線動作Aの仮想上の動作終了点と、合成移動軌跡ADを抜けた以後も行なわれるべき後行旋回動作Dの仮想上の動作開始点とが一致するように仮想上の動作開始/終了点P2が探索される。合成移動軌跡DBに沿って移動させるための仮想上の動作開始/終了点P3の探索について合成移動軌跡DBに入る前より行なわれるべき先行旋回動作Dの仮想上の動作終了点と、合成移動軌跡DBを抜けた以後も行なわれるべき後行直線動作Bの仮想上の動作開始点とが一致するように仮想上の動作開始/終了点P3が探索される。直線動作A,旋回動作D、直線動作B毎のモータ11、12、13の制御位置の演算合成移動軌跡ADに沿って移動させるためのモータ制御位置の演算先行直線動作Aが仮想上の動作開始/終了点P2で終了し、かつ後行旋回動作Dが仮想上の動作開始/終了点P2から、先行直線動作Aが終了するよりも時間的に前に開始するように、先行直線動作Aを実現するためのモータ11、12、13それぞれの先行直線動作用制御位置A1nA、A2nA、A3nAを初期位置A1sA、A2sA、A3sAから終端値A1EA、A2EA、A3EAまで演算するとともに、後行旋回動作Dを実現するためのモータ11、12、13それぞれの後行旋回動作用制御位置D1nD、D2nD、D3nDを初期位置D1sD、D2sD、D3sDから終端位置D1ED、D2ED、D3EDまで演算する。詳細な演算は、前述の1、2式においてBをDに読み替えたものとして示される。合成移動軌跡DBに沿って移動させるためのモータ制御位置の演算先行旋回動作Dが仮想上の動作開始/終了点P3で終了し、かつ後行直線動作Bが仮想上の動作開始/終了点P3から、先行旋回動作Dが終了するよりも時間的に前に開始するように、先行旋回動作Dを実現するためのモータ11、12、13それぞれの先行旋回動作用制御位置D1nD、D2nD、D3nDを初期位置D1sD、D2sD、D3sDから終端値D1ED、D2ED、D3EDまで演算するとともに、後行直線動作Bを実現するためのモータ11、12、13それぞれの後行直線動作用制御位置B1nB、B2nB、B3nBを初期位置B1sB、B2sB、B3sBから終端位置B1EB、B2EB、B3EBまで演算する。詳細な演算は、前述の1、2式においてAをDに読み替えたものとして示される。なお旋回動作Dに関しての重複した演算は当然省略することができる。移動軌跡Cに沿ってハンド位置23aを移動させるためのモータ11、12、13の目標制御位置の演算合成移動軌跡ADに沿って移動させるためのモータ目標制御位置の演算後行旋回動作用制御位置の初期位置D1sD、D2sD、D3sDをそれぞれ、先行直線動作用制御位置の終端位置A1EA、A2EA、A3EAに一致させる条件を付加した上で、先行直線動作用制御位置と後行旋回動作用制御位置に基づき、ハンド位置23aが移動軌跡Cに沿って移動するための各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nを演算する。詳細な演算は、前述の2~11式においてBをDに読み替えたものとして示される。合成移動軌跡DBに沿って移動させるためのモータ目標制御位置の演算後行直線動作用制御位置の初期位置B1sB、B2sB、B3sBをそれぞれ、先行旋回動作用制御位置の終端位置D1ED、D2ED、D3EDに一致させる条件を付加した上で、先行旋回動作用制御位置と後行直線動作用制御位置に基づき、ハンド位置23aが移動軌跡Cに沿って移動するための各モータ11、12、13の今回nの目標制御位置M1n、M2n、M3nを演算する。詳細な演算は、前述の2~11式においてAをDに読み替えたものとして示される。なお旋回動作Dに関しての重複した演算は当然省略することができる。モータ11、12、13の制御つぎに上記のごとく読み替えた3~11を用いて目標制御位置M1n、M2n、M3nがそれぞれ得られるようにモータ11、12、13を制御して、ハンド位置23aを移動軌跡Cに沿って移動させる。この結果、ハンド位置23aは、移動開始点P1から点P5まで直線状に移動し、ついで点P5から点P6まで略円弧状に合成移動軌跡ADに沿って移動し、ついで点P6から点P7まで旋回移動し、ついで点P7から点P8まで略円弧状に合成移動軌跡DBに沿って移動し、ついで点P8から移動終了点P4まで直線状に移動する。このためワークWを高速かつスムーズに搬送させながらも、合成移動軌跡ADおよびDBを予め求めておくという前処理や合成移動軌跡ADおよびDB上の制御値を求めるための特別な関数が不要となるため、ロボット制御の前処理に要する処理時間を飛躍的に短縮させることができ、その結果として、演算処理の負担が減りロボット制御システムの簡素化を図ることができる。以上の説明では、直線動作と直線動作を合成する例、直線動作と旋回動作を合成する例について説明したが、これらはあくまで一例であり、任意の動作同士を同様に合成する実施も当然可能である。また2つの動作を合成する場合を例にとり説明したが、3以上の動作を同様に合成する実施も当然可能である。複数のモータの複合的な動作として直線動作、旋回動作等が実現され、それらを合成する場合を例にとり説明した。しかし、一のモータによる動作と一のモータによる動作とを合成する実施も当然可能である。ここで、仮想モータという考え方がある。仮想モータとは、ロボットの動作に応じた専用のモータがあるという考え方である。たとえばハンドを直線的に動かすときにはハンドを直線状に移動させる仮想モータがあり、ハンドを旋回動作させるときにはハンドを旋回動作させる仮想モータがあると考える。仮想モータにも本発明を適用することができる。たとえば図10に示す合成移動軌跡に沿ってハンド位置23aを移動させる場合には、直線動作に対応する仮想モータと旋回動作に対応する仮想モータを定め、先行直線動作用制御値直動位置および後行旋回動作用制御値旋回角度をそれぞれ、先行動作に対応する仮想モータの制御値および後行旋回動作に対応する仮想モータの制御値として同様の演算を行えばよい。以上実施例では、ロボットとして水平多関節ロボットを想定して説明したが、これはあくまで一例であり、垂直多関節ロボットなどの任意の形式のロボットに適用することができる。また実施例では、ロボットを駆動するアクチュエータとしてモータを想定したが、シリンダなどの他の任意のアクチュエータによって駆動されるロボットにも当然本発明を適用することができる。またアクチュエータを駆動する媒体は、電気、油圧、空圧等任意のものを当然使用することができる。また、ツールとしてハンドを備えたワーク搬送ロボットを想定して説明したが、本発明はワーク搬送ロボットに限定されるわけではなく、溶接作業用のトーチ、切断加工用のトーチなど他の任意のツールを備えたロボットに当然適用することができる。"