複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させる際におけるロボットの制御方法であって、移動後のツールの向きを決定するための各変数のうち、ユーザにより指定される1つまたは2つの変数を任意の値に設定可能な任意変数として設定する任意変数設定処理と、ツールの先端が前記現在位置から前記目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の前記目標位置に対する位置誤差とに基づく評価指標を設定し、その評価指標を最適化して前記目標位置における任意変数の値を決定する変数値決定処理と、を含み、前記変数値決定処理は、前記現在位置を計算対象位置として設定する第1ステップと、前記計算対象位置におけるツールの先端位置および向きを決定するための変数のうち前記任意変数を除いた変数と前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求める第2ステップと、前記位置誤差の座標値を要素とする行列をεkとし、各軸の回転角度の変化量を要素とする行列をΔkとし、対角成分を各軸の最大回転速度の逆数の二乗とした対角行列をλとし、前記目標位置の座標値を要素とする行列をPdとし、前記計算対象位置の座標値を要素とする行列をPkとして、下記1式に示す評価指標Qkを最小化することにより、下記2式に示す変化量Δkを演算する第3ステップと、Qk=εkTεkΔkTλΔk...1Δk=λJkTJk-1JkTPd-Pk...2前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置を演算する第4ステップと、前記演算した移動後のツールの先端位置の前記目標位置に対する位置誤差を求め、その位置誤差が所定の許容誤差以下であるか否か判断する第5ステップと、を含み、前記第5ステップによる判断の結果、前記位置誤差が前記許容誤差を超える場合、前記演算した移動後のツールの先端位置を次の計算対象位置として設定した上で、前記第2~第5ステップを再度実行し、前記第5ステップによる判断の結果、前記位置誤差が前記許容誤差以下である場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を決定することを特徴とするロボットの制御方法。前記現在位置における各軸の回転角度を基準とした各軸の回転角度の変化量を示す各軸移動距離に基づく評価指標を設定し、ツールの先端位置を変化させないという束縛条件の下で、その評価指標を最適化して前記決定した任意変数の値を変更する変数値変更処理を含み、前記変数値変更処理は、前記目標位置および前記決定した任意変数の値に基づいて定まるツールの向きを、計算対象位置として設定する第6ステップと、前記計算対象位置を決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求める第7ステップと、前記各軸移動距離を要素とする行列をεkとし、前記計算対象位置における各軸の回転角度を要素とする行列をθkとし、前記現在位置における各軸の回転角度を要素とする行列をθcとして、下記3式に示す評価指標Qkを、前記束縛条件を満たしつつ最小化することにより、下記4式に示す変化量Δkを演算する第8ステップと、Qk=εkTλεk...3Δk={λ-1JkTJkλ-1JkT-1Jk-I}θk-θc...4前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの向きを演算する第9ステップと、前記評価指標Qkの変化の傾向を判断する第10ステップと、を含み、前記第10ステップによる判断の結果、前記評価指標Qkが所定の傾き以上の減少傾向にある場合、前記目標位置および前記演算した移動後のツールの向きを次の計算対象位置として設定した上で、前記第7~第10ステップを再度実行し、前記第10ステップによる判断の結果、前記評価指標Qkが所定の傾き未満の減少傾向にある場合または前記評価指標Qkに変化がない場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を変更することを特徴とする請求項1に記載のロボットの制御方法。複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させるロボットの制御装置であって、移動後のツールの向きを決定するための各変数のうち、ユーザにより指定される1つまたは2つの変数を任意の値に設定可能な任意変数として設定する任意変数設定処理手段と、ツールの先端が前記現在位置から前記目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の前記目標位置に対する位置誤差とに基づく評価指標を設定し、その評価指標を最適化して前記目標位置における任意変数の値を決定する変数値決定処理手段と、を備え、前記変数値決定処理手段は、前記現在位置を計算対象位置として設定し、前記計算対象位置におけるツールの先端位置および向きを決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求め、前記位置誤差の座標値を要素とする行列をεkとし、各軸の回転角度の変化量を要素とする行列をΔkとし、対角成分を各軸の最大回転速度の逆数の二乗とした対角行列をλとし、前記目標位置の座標値を要素とする行列をPdとし、前記計算対象位置の座標値を要素とする行列をPkとして、下記1式に示す評価指標Qkを最小化することにより、下記2式に示す変化量Δkを演算し、Qk=εkTεkΔkTλΔk...1Δk=λJkTJk-1JkTPd-Pk...2前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置を演算し、前記演算した移動後のツールの先端位置の前記目標位置に対する位置誤差を求め、その位置誤差が所定の許容誤差以下であるか否か判断し、前記位置誤差が前記許容誤差を超える場合、前記演算した移動後のツールの先端位置を次の計算対象位置として設定した上で、次の移動後のツールの先端位置を求めるための前記各演算を再度実行し、前記位置誤差が前記許容誤差以下である場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を決定することを特徴とするロボットの制御装置。前記現在位置における各軸の回転角度を基準とした各軸の回転角度の変化量を示す各軸移動距離に基づく評価指標を設定し、ツールの先端位置を変化させないという束縛条件の下で、その評価指標を最適化して前記決定した任意変数の値を変更する変数値変更処理手段を備え、前記変数値変更処理手段は、前記目標位置および前記決定した任意変数の値に基づいて定まるツールの向きを、計算対象位置として設定し、前記計算対象位置を決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求め、前記各軸移動距離を要素とする行列をεkとし、前記計算対象位置における各軸の回転角度を要素とする行列をθkとし、前記現在位置における各軸の回転角度を要素とする行列をθcとして、下記3式に示す評価指標Qkを、前記束縛条件を満たしつつ最小化することにより、下記4式に示す変化量Δkを演算し、Qk=εkTλεk...3Δk={λ-1JkTJkλ-1JkT-1Jk-I}θk-θc...4前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの向きを演算し、前記評価指標Qkの変化の傾向を判断し、前記評価指標Qkが所定の傾き以上の減少傾向にある場合、前記目標位置および前記演算した移動後のツールの向きを次の計算対象位置として設定した上で、次の移動後のツールの向きを求めるための前記各演算を再度実行し、前記評価指標Qkが所定の傾き未満の減少傾向にある場合または前記評価指標Qkに変化がない場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を変更することを特徴とする請求項3に記載のロボットの制御装置。しかしながら、特許文献1に記載の技術は、正しく目標位置が計算可能となるように、ユーザにより位置情報および力やトルク値情報が与えられるということを前提としている。そのため、目標位置におけるロボットの姿勢を求める必要があると考えられる。つまり、特許文献1に記載の技術は、従来と手法が異なるだけで同じ程度の作業負担を要するものであり、ユーザによる作業負担が軽減されることは少ないと考えられるため、上記課題を解決する手段であるとは言えない。本発明は上記事情に鑑みてなされたものであり、その目的は、目標位置におけるツールの向きを決定するための変数の値を設定する際におけるユーザの作業負担を軽減しつつ、ロボットの移動時間の短縮を図ることができるロボットの制御方法およびロボットの制御装置を提供することにある。請求項1または3に記載の手段によれば、複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させる際の制御において、任意変数設定処理と、変数値決定処理とが実行される。一般的なティーチング作業では、ツールの先端位置および向きを決定するための各変数の値は、全てユーザにより指定される。なお、各変数の値とは、ツール先端の各座標値X軸座標、Y軸座標およびZ軸座標の値およびツール手先の所定軸まわりの回転角度例えば、4軸の水平多関節型ロボットの場合であれば第4軸Z軸まわりの回転角度の値である。しかし、手先に取り付けられるツールの種類および作業内容によっては、そのツールの向き=手先の向きにかかわらず、その作業を達成することが可能な場合もある。例えば、4軸の水平多関節型ロボットにツールとしてエアチャックが用いられる場合、ツールの向き第4軸まわりの向きにかかわらずワークを把持することができる。この場合、目標位置におけるツールの向きは、どのような向きでも構わないと言える。従来では、このような場合であっても、ツールの向きを決定するための変数例えばZ軸まわりの回転角度をユーザが指定していた。これに対し、本手段によれば、ツールの向きを決定するための変数のうち、ユーザにより指定される1つまたは2つの変数が任意の値に設定可能な任意変数として設定される任意変数設定処理。そして、ツールの先端が現在位置から目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の目標位置に対する位置誤差とに基づく評価指標が設定され、その評価指標が最適化されて任意変数の値が決定される変数値決定処理。例えば、4軸の水平多関節型ロボットの手先にエアチャックが取り付けられる場合において、ツール手先のZ軸まわりの回転角度が任意変数として指定されれば、目標位置におけるツールのZ軸まわりの回転角度は、ツールの移動時間が極力短くなるような値に自動的に決定される。すなわち、変数値決定処理では、現在位置が計算対象位置として設定され、その計算対象位置におけるツールの先端位置および向きを決定するための変数X、Y、Z軸座標値およびZ軸まわりの回転角度のうち任意変数に指定されたZ軸まわりの回転角度を除いた変数と、計算対象位置における各軸関節の回転角度とに関するヤコビ行列Jkが求められる。また、下記1式に示す評価指標Qkが設定される。ただし、位置誤差の座標値を要素とする行列をεkとし、各軸の回転角度の変化量を要素とする行列をΔkとし、対角成分が各軸の最大回転速度の逆数の二乗である対角行列をλとしている。なお、εkTはεkの転置行列であり、ΔkTはΔkの転置行列である。Qk=εkTεkΔkTλΔk...1上記1式において、右辺第一項は位置誤差の二乗和である。また、右辺第二項は各軸の回転角度の変化量移動量の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値に相当する。このように設定された評価指標Qkを最小化することにより、下記2式に示す変化量Δkが演算される。ただし、目標位置の座標値を要素とする行列をPdとし、計算対象位置の座標値を要素とする行列をPkとしている。なお、JkTはJkの転置行列である。Δk=λJkTJk-1JkTPd-Pk...2計算対象位置における各軸の回転角度に対して上記演算された変化量Δkを加えた各軸の回転角度、つまり移動後の各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置が演算される。そして、演算された移動後のツールの先端位置の目標位置に対する位置誤差が求められ、その位置誤差が所定の許容誤差以下であるか否かが判断される。つまり、演算により求められた移動後のツールの先端位置が十分に目標位置に近づいているか否かが判断される。その結果、位置誤差が許容誤差を超える場合、演算した移動後のツールの先端位置を次の計算対象位置とした上で、次の移動後のツールの先端位置を求めるための上記各演算が再度実行される。一方、上記判断の結果、位置誤差が許容誤差以下である場合、計算対象位置における各軸の回転角度に対して上記演算された変化量Δkを加えた各軸の回転角度移動後の各軸の回転角度に基づいて、目標位置におけるZ軸まわりの回転角度の値が決定される。すなわち、上記演算により求められた移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときのZ軸まわりの回転角度任意変数の値が、目標位置におけるZ軸まわりの回転角度任意変数の値として設定される。その設定されたZ軸まわりの回転角度の値は、移動時間の概算値が含まれた評価指標Qkを最小化することにより設定されたものであるから、ツールロボットの移動時間が極力短くなるような値となっている。ロボット側において上記した制御が自動的に実行されるため、ユーザがティーチング時に行う作業としては、目標位置におけるツール先端の各座標値を指定するとともに、ツール手先のZ軸まわりの回転角度を任意変数として指定するだけでよい。そして、値が指定された目標位置におけるツール先端のX、Y、Z軸座標の値に加え、上記したように自動的に決定された目標位置におけるツールのZ軸まわりの回転角度任意変数の値に基づいて、ツールの先端を現在位置から目標位置に向けて移動させることにより、ティーチング時におけるユーザ作業者の作業負担を軽減しつつ、ロボットの移動時間の短縮を図ることができる。なお、ここでは、4軸の水平多関節型ロボットの場合を例に説明したが、例えば6軸の垂直多関節型ロボットの場合であれば次のようになる。すなわち、ツールの向きを決定するための変数X、Y、Z軸まわりの各回転角度のうち、いずれか1つ、あるいは、いずれか2つが任意変数として指定されれば、目標位置におけるツール手先の特定の軸まわりの回転角度が、ロボットの移動時間が極力短くなるような値に自動的に決定される。その結果、上記した4軸の水平多関節型ロボットの場合と同様の効果が得られる。すなわち、本手段によれば、複数の軸を有するロボット全般について、上記した作用および効果が得られる。本手段では、移動時間の概算値が含まれた二次形式の評価指標Qkを用い、ヤコビ行列を用いた最適化演算を行っている。そのため、任意変数の値を決定するための演算処理を比較的高速に行うことができる。ところで、ヤコビ行列は、各軸各関節における微小変位と、それに伴う手先の位置および向き姿勢の微小変位との比率を表すものである。本手段においては、このようなヤコビ行列を用いた演算が繰り返される結果、その演算により求められる移動後のツールの先端位置が徐々に目標位置に近づいていくことになる。そのため、上記変数値決定処理により決定された任意変数の値に基づくロボットの目標位置における姿勢形態は、現在位置における姿勢に対し、大きく変化することはない。姿勢の変化が小さいということは、各軸関節の移動量が小さいことを意味する。このようなことからも、上述したロボットの移動時間短縮の効果が得られるということが明らかである。請求項1または3に記載の手段では、ヤコビ行列を用いた演算により求められる移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときの任意変数の値を、目標位置における任意変数として設定していた。しかし、ヤコビ行列は上記した特性を有しているため、上記演算による最終的な移動後のツールの先端位置であっても目標位置から僅かに外れることになる。そのため、決定した任意変数の値が、必ずしもロボットの移動時間を確実に最小化できるものであるとは言いきれない。このように、請求項1または3に記載の手段により決定される任意変数の値には改善の余地がある。請求項2または4に記載の手段によれば、請求項1または3に記載の手段により決定された任意変数の値を変更する変数値変更処理が実行される。その変数値変更処理は、現在位置における各軸の回転角度を基準とした各軸の回転角度の変化量を示す各軸移動距離に基づく評価指標を設定し、ツールの先端位置を変化させないという束縛条件の下で、その評価指標を最適化して、決定された任意変数の値を変更するというものである。例えば、前述した4軸の水平多関節型ロボットのケースであれば、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度任意変数を除く変数の値が固定された上で、各軸移動距離に基づく評価指標を最小化する演算が繰り返し実行される。その結果、目標位置におけるツールのZ軸まわりの回転角度は、移動時間がさらに短くなるような値に変更される。具体的には、変数値変更処理では、ユーザにより指定されるツール先端の目標位置X、Y、Z軸座標の値と、決定された目標位置におけるツールのZ軸まわりの回転角度任意変数の値ツールの向きとが、計算対象位置として設定される。このように、本手段における計算対象位置は、ツール先端の各軸座標値だけでなく、ツールの向きについても含むものとなっている。そして、その計算対象位置を決定するための各変数のうち、任意変数であるZ軸まわりの回転角度を除いた変数と、計算対象位置における各軸の回転角度とに関するヤコビ行列Jkが求められる。また、下記3式に示す評価指標Qkが設定される。ただし、本手段では、各軸移動距離を要素とする行列をεkとしている。なお、εkTはεkの転置行列である。Qk=εkTλεk...3上記3式に示す評価指標Qkは、各軸移動距離の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値に相当する。このように設定された評価指標Qkを、ツールの先端位置を変化させないという束縛条件JkΔk=0を満たしつつ最小化することにより、下記4式に示す変化量Δkが演算される。ただし、計算対象位置における各軸の回転角度を要素とする行列をθkとし、現在位置における各軸の回転角度を要素とする行列をθcとしている。Δk={λ-1JkTJkλ-1JkT-1Jk-I}θk-θc...4計算対象位置における各軸の回転角度に対して上記演算された変化量Δkを加えた各軸の回転角度移動後の各軸の回転角度について順変換を行うことにより、移動後のツールの向きが演算される。そして、評価指標Qkの変化の傾向が判断される。その結果、評価指標Qkが所定の傾き以上の減少傾向にある場合、評価指標Qkをさらに最小化する余地があると考えられる。その場合、目標位置および演算されたツールの向きを次の計算対象位置として設定した上で、次の移動後のツールの向きを求めるための上記各演算が再度実行される。一方、上記判断の結果、評価指標Qkが所定の傾き未満の減少傾向にある場合、または、変化がない場合、評価指標Qkをさらに最小化する余地が少ないと考えられる。その場合、計算対象位置における各軸の回転角度に対して上記演算された変化量Δkを加えた各軸の回転角度移動後の各軸の回転角度に基づいて、目標位置におけるツールのZ軸まわりの回転角度の値が変更される。その変更されたツールのZ軸まわりの回転角度の値は、移動時間の概算値が含まれた評価指標Qkを最小化することにより決定された値であるから、ツールロボットの移動時間が極力短くなるような値となっている。さらに、上記演算は、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度任意変数を除く変数の値が固定された上で行われている。つまり、ツール先端の位置を目標位置に固定した状態でもって、移動時間が極力短くなるツールのZ軸まわりの回転角度が求められている。従って、ロボットの移動時間を一層短縮することができるという効果が得られる。第1の実施形態以下、本発明の第1の実施形態について図1~図4を参照しながら説明する。図1は、一般的な産業用ロボットのシステム構成を示している。図1に示すロボットシステム1は、ロボット2と、ロボット2を制御するコントローラ3と、コントローラ3に接続されたティーチングペンダント4とから構成されている。ロボット2は、例えば4軸の水平多関節型ロボットとして構成されている。ロボット2は、設置面に固定されるベース5と、ベース5上にZ軸垂直軸方向の軸心を持つ第1軸J1を中心に回転可能に連結された第1のアーム6と、第1のアーム6の先端部上にZ軸方向の軸心を持つ第2軸J2を中心に回転可能に連結された第2のアーム7と、第2のアーム7の先端部に上下動可能で且つ回転可能に設けられたシャフト8とから構成されている。シャフト8を上下動させる際の軸が第3軸J3であり、回転させる際の軸が第4軸J4である。シャフト8の先端部下端部には、フランジ9が位置決めされて着脱可能に取り付けられる。ベース5、第1のアーム6、第2のアーム7、シャフト8およびフランジ9は、ロボット2のアームとして機能する。アーム先端であるフランジ9手先に相当には、図示はしないが、例えばエアチャックなどのツールが取り付けられる。ロボット2に設けられる複数の軸J1~J4はそれぞれに対応して設けられるモータ図示せずにより駆動される。各モータの近傍には、それぞれの回転軸の回転角度回転位置を検出するための位置検出器図示せずが設けられている。一般に、産業用のロボットは、予めティーチングなどを実施することにより作成される所定の動作プログラムに従って動作するようになっている。コントローラ3ロボットの制御装置に相当は、その動作プログラムに基づいてモータの駆動をフィードバック制御し、ロボット2のアームの動作制御を行う。ティーチングペンダント4は、例えば使用者が携帯あるいは手に所持して操作可能な程度の大きさで、例えば薄型の略矩形箱状に形成されている。ティーチングペンダント4には、各種のキースイッチが設けられており、使用者は、それらキースイッチにより種々の入力操作を行う。ティーチングペンダント4は、ケーブルを経由してコントローラ3に接続され、通信インターフェイスを経由してコントローラ3との間で高速のデータ転送を実行するようになっており、キースイッチの操作により入力された操作信号等の情報はティーチングペンダント4からコントローラ3へ送信される。一般に、ロボット2の手先であるフランジ9に取り付けられるツールの先端を、現在位置から目標位置に向けて移動させる動作のティーチング作業が行われる際、目標位置におけるロボット2の姿勢をどのようなものにするかはユーザにより決定される。すなわち、このようなティーチング作業の際、ツール先端の目標位置を決定するための変数ツール先端のX軸座標値、Y軸座標値およびZ軸座標値と、目標位置におけるツール手先の向きを決定するための変数ツールのZ軸まわりの回転角度とは、全てユーザにより指定される。ただし、フランジ9に取り付けられるツールの種類形状およびそのツールを用いた作業の内容によっては、ツールの向きを不問とすることが可能である。例えば、ツールとしてエアチャックが用いられる場合、ツールのZ軸第4軸J4まわりの向きがどのような向きであっても、ワークを把持することができる。本実施形態のロボットシステム1では、上記したツールの向きを不問とすることが可能なケースにおいて、ユーザは、ツール先端の目標位置を示すX、Y、Z軸座標の値を指定するだけでよく、目標位置におけるツールのZ軸まわりの回転角度Rzの値を指定しなくてよい。その代わりに、ユーザは、ツールのZ軸まわりの回転角度Rzを任意変数として指定する。これを受けて、コントローラ3は、回転角度Rzを、コントローラ3側で任意の値に設定可能な任意変数として設定する任意変数設定処理。また、詳細は後述するが、コントローラ3は、ツールの先端が現在位置から目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の目標位置に対する位置誤差とに基づく評価指標を設定し、その評価指標を最適化することで任意変数の値を決定する変数値決定処理。このように、コントローラ3は、任意変数設定処理手段および変数値決定処理手段として機能する。本実施形態では、コントローラ3により上記各処理が実行されることにより、目標位置におけるツールの向きが、ロボット2の移動時間が極力短くなるようなものに決定される。図2は、変数値決定処理の内容を示すフローチャートである。図2に示すように、変数値決定処理が開始されるとスタート、現在位置が計算対象位置として設定されるステップS1。ステップS2では、計算対象位置におけるツールの先端位置および向きを決定するための変数X、Y、Z軸座標値および回転角度Rzのうち、任意変数に指定された回転角度Rzを除いた変数と、計算対象位置における各軸関節の回転角度とに関するヤコビ行列Jkが求められる。そのヤコビ行列Jkは、下記5式のように表される。ただし、X、Y、Z軸座標値をそれぞれXk、Yk、Zkとし、第1軸J1~第4軸J4のそれぞれの回転角度をθ1k~θ4kとしている。ステップS3では、下記6式に示す評価指標Qkが設定される。ただし、位置誤差の各座標値を要素とする行列をεkとし、各軸J1~J4の各回転角度θ1~θ4の変化量を要素とする行列をΔkとし、対角成分が各軸J1~J4のそれぞれの最大回転速度の逆数の二乗である対角行列をλとし、位置誤差および変化量の重み付けのための定数をβとしている。また、εkTはεkの転置行列を示し、ΔkTはΔkの転置行列を示している。なお、εk、λは、それぞれ下記7、8式により表される。ただし、目標位置のX、Y、Z軸座標値を要素とする行列をPdとし、計算対象位置のX、Y、Z軸座標値を要素とする行列をPkとし、第1軸J1~第4軸J4のそれぞれについての最大回転速度をV1max~V4maxとしている。Qk=εkTεkβΔkTλΔk...6εk=Pd-Pk-JkΔk...7上記6式において、右辺第一項は位置誤差の二乗和である。また、右辺第二項は各軸J1~J4の回転角度の変化量移動量の二乗和に対角行列λを乗じたものであり、移動時間の概算値近似値に相当する。定数βは、ロボット2の各関節の可動範囲と動作速度に比例する。従って、定数βは、ロボット2の機種ごとに適宜設定すればよい。なお、評価指標Qkにおける位置誤差および移動時間の概算値の重み付けが均等であれば、定数βを省くことができる。ステップS4では、このように設定された評価指標Qkが最小化されることにより、下記9式に示す変化量Δkが演算される。ただし、JkTはJkの転置行列を示している。Δk=βλJkTJk-1JkTPd-Pk...9ステップS5では、下記10式に示すように、移動後の各軸の回転角度が求められる。ただし、移動後の各軸J1~J4の回転角度を要素とする行列をθk1とし、計算対象位置における各軸J1~J4の回転角度を要素とする行列をθkとしている。また、定数γは目標位置への収束速度を調整するための定数を示している。なお、本実施形態では、定数γの値を1としているが、目標位置への収束速度を早くする場合には定数γの値を大きくすればよいし、収束速度を遅くする場合には定数γの値を小さくすればよい。θk1=θkγΔk...10ステップS6では、下記11式に示すように、移動後のツールの先端位置が求められる。すなわち、移動後の各軸の回転角度を要素とする行列θk1について順変換を行うことにより、移動後のツールの先端位置のX、Y、Z軸座標値を要素とする行列Pk1が求められる。ただし、ツールのオフセット長や各アームのリンク長などを考慮した上で各軸の回転角度からツール先端位置を求める関数をJ2Pとして表している。Pk1=J2Pθk1...11ステップS7では、演算により求められた移動後のツールの先端位置Pk1の目標位置Pdに対する位置誤差が求められる。ステップS8では、ステップS7で求められた位置誤差が所定の許容誤差以下であるか否かが判断される。つまり、演算により求められた移動後のツールの先端位置Pk1が十分に目標位置Pdに近づいているか否かが判断される。その結果、位置誤差が許容誤差を超える場合NO、ステップS9に進む。ステップS9では、移動後のツールの先端位置Pk1が次の計算位置に設定される。このように次の計算位置が設定された上で、ステップS2に戻り、次の移動後のツールの先端位置を求めるための各演算ステップS2~S8が再度実行される。なお、上記許容誤差は、例えば、ロボット2における位置制御の精度に基づいて適宜設定すればよい。一方、ステップS8による判断の結果、位置誤差が許容誤差以下である場合YES、ステップS10に進む。ステップS10では、上記10式に示した移動後の各軸J1~J4の回転角度θk1に基づいて、目標位置におけるZ軸まわりの回転角度Rzの値が決定され、処理が終了するエンド。すなわち、上記演算により求められた移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときのZ軸まわりの回転角度Rzの値が、目標位置におけるZ軸まわりの回転角度Rzの値として設定される。その設定されたZ軸まわりの回転角度Rzは、移動時間の概算値が含まれた評価指標Qkを最小化することにより設定されたものであるから、ツールロボット2の移動時間が極力短くなるような値になっている。コントローラ3により上記した制御が自動的に実行されるため、ユーザがティーチング時に行う作業としては、前述したように目標位置におけるツール先端の各座標値を指定するとともに、ツールのZ軸まわりの回転角度Rzを任意変数として指定するだけでよい。そして、コントローラ3は、値が指定された目標位置におけるツール先端のX、Y、Z軸座標の値に加え、上記した各処理により自動的に決定された目標位置におけるツールのZ軸まわりの回転角度Rzの値ツールの向きに基づいて、ツール先端を現在位置から目標位置に向けて移動させることができる。これにより、ティーチング時におけるユーザ作業者の作業負担が軽減されるとともに、ロボット2の移動時間が短縮されることになる。変数値決定処理においては、移動時間の概算値が含まれた二次形式の評価指標を用い、ヤコビ行列を用いた最適化演算を行っている。そのため、変数値決定処理における各種演算処理を比較的高速に行うことが可能となっている。ところで、ヤコビ行列は、各軸関節における微小変位と、それに伴う手先の位置および向きロボット2の姿勢の微小変位との比率を表すものである。本実施形態では、このようなヤコビ行列を用いた演算が繰り返される結果、その演算により求められる移動後のツールの先端位置が徐々に目標位置に近づいていくことになる。そのため、上記変数値決定処理により決定された任意変数の値に基づいて定まるロボット2の目標位置での姿勢は、現在位置での姿勢に対し、大きく変化することはない。姿勢の変化が小さいということは、各関節の移動量も小さいということになる。このようなことからも、本実施形態によれば、ロボット2の移動時間が短縮されるという効果が得られることが分かる。次に、本実施形態のロボットシステム1により得られる具体的な効果について、図3および図4も参照して説明する。図3は、ツール先端を現在位置Pcから目標位置Pdに向けて移動させる際におけるロボットの態様を模式的に示している。図3に示すロボットは、4軸の水平多関節型ロボットであり、その手先にツールとしてエアチャックが取り付けられている。なお、図3では、各軸および各リンクをそれぞれ丸印および直線で示すとともに、ツール先端を矢印で示している。また、現在位置におけるロボットの状態を点線で示すとともに、目標位置におけるロボットの状態を実線で示している。ここでは、現在位置Pcから目標位置Pdまでツール先端を移動させ、ツールであるエアチャックによりワークを把持する作業が行われるものとする。上記ケースにおけるティーチング作業は、従来の手法によれば次のように行われる。すなわち、ティーチングを担当する作業者は、まず、図3のa、b、cのそれぞれに示す状態姿勢について検討する。つまり、作業者は、ツールの向きを大まかに変えてみて、どの向きが良さそうであるかを推測する。その結果、cの状態が良さそうであると判断した場合、cの状態をベースにし、そのc状態からツールの向きを少しずつ変化させたもの図3のd、e、fのそれぞれに示す状態について検討する。その結果、図3fの状態が最適である移動時間が短くなるという判断に至る。なお、ここでは、説明を簡略化するため、作業者が検討する状態の数を少なくするとともに、少ない繰り返し作業で最適な状態が見つかるケースとしている。実際には、さらに多くの状態について検討したり、繰り返し回数が増えたりすることもある。これに対し、本実施形態のロボットシステム1によれば、目標位置Pdにおけるツールの向きは、コントローラ3により、ロボット2の移動時間が極力短くなるような向きに自動的に決定される。従って、従来の手法のような繰り返しの過程を経ることなく、図3のfの状態ツールの向きが最適である移動時間を極力短くできるという結果が容易に得られる。このように、従来の手法によれば、ティーチングを担当する作業者の経験と推測により、少しずつ目標位置におけるロボットの状態姿勢を変化させる。そして、その作業を何回例えば5回か繰り返した結果、例えば、現在位置および目標位置におけるツールの向きが互いに同じロボットの姿勢図3のaに比べ、ロボットの動作時間が短くなる例えば25程度の改善ツールの向きを得ることが可能となっていた。これに対し、本実施形態のロボットシステム1によれば、ティーチングを担当する作業者の経験などに関係なく、従来の手法による効果と同程度の効果を得ることができる。さらに、その際、作業者は目標位置におけるロボットの姿勢について具体的に検討する必要がないため、その作業負担が大きく軽減されることになる。図4は、ツール先端を現在位置Pcから目標領域Ad内の任意の目標位置に向けて移動させる際における図3相当図である。この場合、図4のaに示す目標領域Ad内におけるどの位置に移動すればよいかについては実作業時にカメラなどの外部機器から与えられ、ティーチングの時点において作業者は知ることができないものとする。このようなケースでは、目標領域Ad内のどの位置に目標位置が設定されるかによってツールの最適な向きが変化する。そのため、従来の手法では、図4のbに示すように、目標領域Adを複数の小領域に分割し、それら小領域ごとに最適なツールの向きを教示するなど、非常に手間がかかっていた。また、どのように目標領域Adを分割するかによって、最適なツールの向きが得られるかどうかが変化するため、ティーチングを担当する作業者の個人能力に大きく依存する部分があった。これに対し、本実施形態のロボットシステム1によれば、実作業時に初めてカメラなどの外部機器から目標位置が与えられるケースであっても、コントローラ3は、与えられた目標位置に基づいて、その目標位置における最適なツールの向きを自動的に決定する。そのため、従来の手法のように目標領域Adを小領域に分割し、それら小領域ごとにティーチングをするといった手間のかかる作業を省くことが可能となる。第2の実施形態以下、第1の実施形態に対し、コントローラ3の制御内容を変更した第2の実施形態について図5を参照しながら説明する。第1の実施形態では、ヤコビ行列を用いた演算により求められる移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときの任意変数ツールのZ軸まわりの回転角度Rzの値を、目標位置における任意変数の値として設定していた。しかし、ヤコビ行列は、第1の実施形態において述べたような特性を有しているため、上記演算による最終的な移動後のツールの先端位置であっても目標位置から僅かに外れることになる。そのため、決定された任意変数の値が、必ずしもロボット2の移動時間を確実に最小化できるものであるとは言いきれない。このように、変数値決定処理により決定される任意変数の値には改善の余地がある。本実施形態のコントローラ3は、図2に示した任意変数値決定処理の実行後、決定された目標位置におけるツールの回転角度Rz任意変数の値を変更する任意変数変更処理を実行する。つまり、本実施形態のコントローラ3は、変数値変更処理手段としても機能する。その変数値変更処理は、現在位置における各軸の回転角度を基準とした各軸の回転角度の変化量を示す各軸移動距離に基づく評価指標を設定し、ツールの先端位置を変化させないという束縛条件の下で、その評価指標を最適化して、決定された任意変数の値を変更するというものである。すなわち、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度Rzを除く変数X、YZ軸座標値の値が固定された上で、各軸移動距離に基づく評価指標を最小化する演算が繰り返し実行される。その結果、目標位置におけるツールのZ軸まわりの回転角度Rzは、移動時間がさらに短くなるような値に変更される。図5は、任意変数変更処理の内容を示すフローチャートである。図5に示すように、任意変数変更処理が開始されるとスタート、ステップT1が実行される。ステップT1では、ユーザにより指定されるツール先端の目標位置X、Y、Z軸座標値が計算対象位置として設定される。また、その計算対象位置におけるツールのZ軸まわりの回転角度Rzツールの向きは、変数値決定処理にて決定された値に設定される。このように、変数値変更処理における計算対象位置は、ツール先端の各軸座標値だけでなく、ツールの向きについても含むものとなっている。ステップT2では、計算対象位置ツールの向きも含むを決定するための各変数のうち、任意変数であるZ軸まわりの回転角度Rzを除いた変数と、計算対象位置における各軸の回転角度とに関するヤコビ行列Jkが求められる。そのヤコビ行列Jkは、上記5式のように表される。ステップT3では、下記12式に示す評価指標Qkが設定される。ただし、ここでは、各軸移動距離を要素とする行列をεkとしている。また、εkTはεkの転置行列を示している。Qk=εkTλεk...12上記12式に示す評価指標Qkは、各軸移動距離の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値近似値に相当する。ステップT4では、このように設定された評価指標Qkを、下記13式に示す束縛条件gkを満たしつつ、最小化することにより、下記14式に示す変化量Δkが演算される。ただし、現在位置における各軸J1~J4の回転角度を要素とする行列をθcとしている。なお、上記演算の手法としては、例えばラグランジュの未定乗数法などを用いることができる。JkΔk=0...13Δk={λ-1JkTJkλ-1JkT-1Jk-I}θk-θc...14ステップT5では、第1の実施形態におけるステップS5と同様に、上記10式に示した移動後の各軸の回転角度が求められる。ステップT6では、下記15式に示すように、移動後のツールの先端位置および向きが求められる。すなわち、移動後の各軸の回転角度θk1について順変換を行うことにより、移動後のツールの先端位置のX、Y、Z軸座標値およびZ軸まわりの回転角度Rzを要素とする行列Pk1が求められる。Pk1=J2Pθk1...15ステップT7、T8では、今回の最適化演算ステップT3、T4により最適化された評価指標Qkの値が、前回の最適化演算により最適化された評価指標Qk-1からどのように変化したのかが判断される。すなわち、ステップT7、T8は、評価指標の変化の傾向を判断するものである。従って、変数値変更処理が実行されてから最初にステップT7に移行した際には、それらステップT7、T8をスキップしてステップT9に移行する。2回目以降に実行されるステップT7では、今回の評価指標Qkの値が、前回の評価指標Qk-1の値から減少したか否かが判断される。その結果、減少したと判断された場合ステップT7でYES、ステップT8に進む。ステップT8では、評価指標の減少量が所定のしきい値以上であるか否かが判断される。すなわち、ステップT8では、評価指標が所定の傾き以上の減少傾向にあるか否かが判断される。その結果、評価指標の減少量が所定のしきい値以上である、つまり評価指標が所定の傾き以上の減少傾向にあると判断された場合ステップT8でYES、ステップT9に進む。このような場合、評価指標をさらに最小化する余地が大きいと考えられる。ステップT9では、次のように計算対象位置が再設定される。すなわち、ステップT9では、ツール先端のX、Y、Z軸座標値は目標位置のままとし、ステップT6で演算された移動後のツールの向きが、次の計算対象位置におけるツールの向きとして設定される。このように次の計算対象位置が設定された後、ステップT2に戻り、次の移動後のツールの向きを求めるための各演算ステップT2~T8が再度実行される。一方、ステップT7にて、評価指標が減少していないと判断された場合NO、または、ステップT8にて、評価指標の減少量が所定のしきい値未満である、つまり評価指標が所定の傾き未満の減少傾向にあると判断された場合NO、ステップT10に進む。これらの場合、評価指標をさらに最小化する余地が少ないと考えられる。なお、ステップT7にて、評価指標が減少していないと判断された場合、評価指標が変化していないと考えられる。なぜなら、ここでは評価指標を最小化する演算を行っているため、評価指標が増加することはほとんど考えられない。従って、評価指標が減少していないということは、すなわち評価指標が変化していないということになる。ステップT10では、上記10式に示した移動後の各軸J1~J4の回転角度θk1に基づいて、目標位置におけるZ軸まわりの回転角度Rzの値が変更され、処理が終了するエンド。ステップT10により変更された目標位置におけるツールのZ軸まわりの回転角度Rzの値は、移動時間の概算値が含まれた評価指標Qkを最小化することにより決定された値であるから、ツールロボット2の移動時間が極力短くなるような値となっている。さらに、上記各演算ステップT2~T8は、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度Rz任意変数を除く変数の値が固定された上で行われている。つまり、ツール先端の位置を目標位置に固定した状態でもって、移動時間が極力短くなるツールのZ軸まわりの回転角度Rzの値ツールの向きが求められている。従って、本実施形態によれば、ロボット2の移動時間を一層短縮することができるという効果が得られる。さて、上記しきい値を小さくするほど、評価指標の最適化最小化の精度が高まり、ロボット2の移動時間短縮の効果が高まる。しかし、しきい値を小さくし過ぎると、最適化演算に多大な時間を要することになる。上記しきい値は、このようなトレードオフの関係を考慮した上で適切な値に設定するとよい。ただし、しきい値をどれだけ小さくしても、ロボット2を移動させるための指令値の出力分解能により移動時間の短縮効果は制限される。そのため、例えば、コントローラ3における指令値の出力分解能に応じた値に設定するということも一案である。例えば、出力分解能が8msであれば、その十分の一の0.8msなどに設定すれば、最適化に要する演算時間がむやみに増大することなく、移動時間の短縮効果が十分に得られると考えられる。第3の実施形態以下、上記各実施形態に対し、対象とするロボットの種類を変更した第3の実施形態について図6を参照しながら説明する。図6は、第1の実施形態における図1相当図であり、上記各実施形態と同一部分には同一符号を付して説明を省略する。図6に示す本実施形態のロボットシステム21は、図1に示した第1の実施形態のロボットシステム1に対し、ロボット2に代えてロボット22を備えている点が異なる。ロボット22は、例えば6軸の垂直多関節型ロボットとして構成されている。すなわち、ベース25上には、Z軸方向の軸心を持つ第1軸J21を介してショルダ部26が水平方向に回転可能に連結されている。ショルダ部26には、Y軸方向の軸心を持つ第2軸J22を介して上方に延びる下アーム27の下端部が垂直方向に回転可能に連結されている。下アーム27の先端部には、Y軸方向の軸心を持つ第3軸J23を介して第1の上アーム28が垂直方向に回転可能に連結されている。第1の上アーム28の先端部には、X軸方向の軸心を持つ第4軸J24を介して第2の上アーム29が捻り回転可能に連結されている。第2の上アーム29の先端部には、Y軸方向の軸心を持つ第5軸J25を介して手首30が垂直方向に回転可能に連結されている。手首30には、X軸方向の軸心を持つ第6軸J26を介してフランジ31が捻り回転可能に連結されている。ベース25、ショルダ部26、下アーム27、第1の上アーム28、第2の上アーム29、手首30およびフランジ31は、ロボット22のアームとして機能する。アーム先端であるフランジ31手先に相当には、図示はしないが、例えばエアチャックなどのツールが取り付けられる。ロボット22に設けられる複数の軸J21~J26は、第1の実施形態のロボット2と同様、それぞれに対応して設けられるモータ図示せずにより駆動される。また、各モータの近傍には、それぞれの回転軸の回転位置を検出するための位置検出器図示せずが設けられている。このような本実施形態の構成においても、コントローラ3は、上記各実施形態と同様の任意変数設定処理および変数値決定処理や、任意変数変更処理を実行することが可能である。例えば、ツールの向きを決定するための変数X、Y、Z軸まわりの回転角度Rx、Ry、Rzのうち、いずれか1つ、あるいは、いずれか2つが任意変数として指定されれば、その指定された変数が任意変数として設定される任意変数設定処理。そして、コントローラ3により変数値決定処理および変数値変更処理が行われる。なお、本実施形態では、図2のステップS2および図5のステップT2にて求められるヤコビ行列Jkについて、軸数の変更に基づいて変更すればよい。そのヤコビ行列Jkは、例えばツールのX軸まわりの回転角度RxおよびY軸まわりの回転角度Ryが任意変数として設定された場合、下記16式のように表される。ただし、第1軸J21~第6軸J26のそれぞれの回転角度をθ1k~θ6kとし、ツールのZ軸まわりの回転角度をRzkとしている。これにより、目標位置における任意変数の値ツールの向きが、ロボット22の移動時間が極力短くなるような値に自動的に決定される。その結果、本実施形態の構成においても、上記各実施形態と同様の作用および効果が得られる。その他の実施形態なお、本発明は上記し且つ図面に記載した各実施形態に限定されるものではなく、次のような変形または拡張が可能である。上記各実施形態では、本発明を4軸の水平多関節型のロボット2、または6軸の垂直多関節型のロボット22に適用した例を説明したが、本発明は、複数の軸を有するロボット全般に適用可能である。