複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させる際におけるロボットの制御方法であって、移動後のツールの向きを決定するための各変数のうち、ユーザにより指定される1つまたは2つの変数を任意の値に設定可能な任意変数として設定する任意変数設定処理と、ツールの先端が前記現在位置から前記目標位置に移動する際に要する移動時間に基づく評価指標を設定し、その評価指標を最適化して前記目標位置における任意変数の値を決定する変数値決定処理と、を含み、前記変数値決定処理は、前記任意変数の値として設定可能な全ての数値範囲を変数値範囲として設定する第1ステップと、前記変数値範囲内の数値を所定の数だけ抽出する第2ステップと、前記目標位置における前記任意変数の値として、前記抽出された各数値をそれぞれ設定した場合における前記評価指標を演算する第3ステップと、前記演算された各評価指標に基づいて、前記評価指標が最小となる前記数値を含むように、前記変数値範囲を所定範囲だけ狭くして再設定する第4ステップと、を含み、前記再設定された変数値範囲が所定の要求精度範囲を超える場合、前記第2~第4ステップを再度実行し、前記再設定された変数値範囲が前記要求精度範囲以下である場合、前記変数値範囲内の所定の数値を前記目標位置における前記任意変数の値として決定することを特徴とするロボットの制御方法。前記変数値決定処理は、前記第2ステップを最初に実行する際、前記第2ステップを2回目以降に実行する際に比べて前記抽出する数値の数を多くするとともに、前記変数値範囲内の前記数値を均等に抽出することを特徴とする請求項1に記載のロボットの制御方法。複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させるロボットの制御装置であって、移動後のツールの向きを決定するための各変数のうち、ユーザにより指定される1つまたは2つの変数を任意の値に設定可能な任意変数として設定する任意変数設定処理手段と、ツールの先端が前記現在位置から前記目標位置に移動する際に要する移動時間に基づく評価指標を設定し、その評価指標を最適化して前記目標位置における任意変数の値を決定する変数値決定処理手段と、を備え、前記変数値決定処理手段は、前記任意変数の値として設定可能な全ての数値範囲を変数値範囲として設定し、前記変数値範囲内の数値を所定の数だけ抽出し、前記目標位置における前記任意変数の値として、前記抽出された各数値をそれぞれ設定した場合における前記評価指標を演算し、前記演算された各評価指標に基づいて、前記評価指標が最小となる前記数値を含むように、前記変数値範囲を所定範囲だけ狭くして再設定し、前記再設定された変数値範囲が所定の要求精度範囲を超える場合、前記変数値範囲を狭くするための各演算を再度実行し、前記再設定された変数値範囲が前記要求精度範囲以下である場合、前記変数値範囲内の所定の数値を前記目標位置における前記任意変数の値として決定することを特徴とするロボットの制御装置。前記変数値決定処理手段は、前記変数値範囲内の数値を抽出する処理を最初に実行する際、前記処理を2回目以降に実行する際に比べて前記抽出する数値の数を多くするとともに、前記変数値範囲内の前記数値を均等に抽出することを特徴とする請求項3に記載のロボットの制御装置。しかしながら、特許文献1に記載の技術は、正しく目標位置が計算可能となるように、ユーザにより位置情報および力やトルク値情報が与えられるということを前提としている。そのため、目標位置におけるロボットの姿勢を求める必要があると考えられる。つまり、特許文献1に記載の技術は、従来と手法が異なるだけで同じ程度の作業負担を要するものであり、ユーザによる作業負担が軽減されることは少ないと考えられるため、上記課題を解決する手段であるとは言えない。本発明は上記事情に鑑みてなされたものであり、その目的は、目標位置におけるツールの向きを決定するための変数の値を設定する際におけるユーザの作業負担を軽減しつつ、ロボットの移動時間の短縮を図ることができるロボットの制御方法およびロボットの制御装置を提供することにある。請求項1または3に記載の手段によれば、複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させる際の制御において、任意変数設定処理と、変数値決定処理とが実行される。一般的なティーチング作業では、ツールの先端位置および向きを決定するための各変数の値は、全てユーザにより指定される。なお、各変数の値とは、ツール先端の各座標値X軸座標、Y軸座標およびZ軸座標の値およびツール手先の所定軸まわりの回転角度例えば、4軸の水平多関節型ロボットの場合であれば第4軸Z軸まわりの回転角度の値である。しかし、手先に取り付けられるツールの種類および作業内容によっては、そのツールの向き=手先の向きにかかわらず、その作業を達成することが可能な場合もある。例えば、4軸の水平多関節型ロボットにツールとしてエアチャックが用いられる場合、ツールの向き第4軸まわりの向きにかかわらずワークを把持することができる。この場合、目標位置におけるツールの向きは、どのような向きでも構わないと言える。従来では、このような場合であっても、ツールの向きを決定するための変数例えばZ軸まわりの回転角度をユーザが指定していた。これに対し、本手段によれば、ツールの向きを決定するための変数のうち、ユーザにより指定される1つまたは2つの変数が任意の値に設定可能な任意変数として設定される任意変数設定処理。そして、ツール先端が現在位置から目標位置に移動する際に要する移動時間に基づく評価指標が設定され、その評価指標が最適化されて任意変数の値が決定される変数値決定処理。例えば、4軸の水平多関節型ロボットの手先にエアチャックが取り付けられる場合において、ツール手先のZ軸まわりの回転角度が任意変数として指定されれば、目標位置におけるツールのZ軸まわりの回転角度は、ツールの移動時間が極力短くなるような値に自動的に決定される。すなわち、変数値決定処理では、任意変数の値として設定可能な全ての数値範囲が変数値範囲として設定される。例えばツール手先のZ軸まわりの回転角度の場合であれば、ロボットの機構的な制限から設定可能な数値範囲は-180度~180度となり、その範囲が変数値範囲として設定される。そして、設定された変数値範囲内の数値が所定の数だけ抽出され、目標位置におけるツールのZ軸まわりの回転角度の値として上記抽出された各数値をそれぞれ設定した場合における評価指標が演算される。このように演算された各評価指標に基づいて、評価指標が最小となる数値ツールのZ軸まわりの回転角度の値が含まれるように、変数値範囲が所定範囲だけ狭められて再設定される。評価指標の最小値を含むように変数値範囲を狭くする手法としては、例えば黄金分割法などが挙げられる。そして、再設定された変数値範囲が所定の要求精度範囲を超える場合、上記した変数値範囲を狭めるための各演算が再度実行される。一方、再設定された変数値範囲が要求精度範囲以下である場合、その変数値範囲内の所定の数値が、目標位置におけるツールのZ軸まわりの回転角度の値として決定される。すなわち、最終的に設定されている変数値範囲内のいずれか一つの数値が目標位置における任意変数の値として設定される。そのため、要求精度範囲を狭くするほど、最終的に設定される変数値範囲が狭くなって評価指標が最小となる任意変数の値が求められる精度が高まるものの、上記各演算の繰り返し回数が多くなって変数値決定処理に要する演算時間は長くなる。また、要求精度範囲を広くするほど、最終的に設定される変数値範囲が広くなって評価指標が最小となる任意変数の値が求められる精度が低くなるものの、上記各演算の繰り返し回数が少なくなって変数値決定処理に要する演算時間は短くなる。要求精度範囲は、このようなトレードオフの関係を考慮した上で適宜設定すればよい。このようにして決定されたツールのZ軸まわりの回転角度任意変数の値は、移動時間に基づく評価指標が最小となる値、あるいは、それに準ずる値である。すなわち、決定されたZ軸まわりの回転角度の値は、現在位置から目標位置に移動する際におけるツールロボットの移動時間が極力短くなるような値となっている。ロボット側において上記した制御が自動的に実行されるため、ユーザがティーチング時に行う作業としては、目標位置におけるツール先端の各座標値を指定するとともに、ツール手先のZ軸まわりの回転角度を任意変数として指定するだけでよい。そして、値が指定された目標位置におけるツール先端のX、Y、Z軸座標の値に加え、上記したように自動的に決定された目標位置におけるツールのZ軸まわりの回転角度任意変数の値に基づいて、現在位置から目標位置に向けてツール先端が移動されることにより、ティーチング時におけるユーザ作業者の作業負担を軽減しつつ、ロボットの移動時間の短縮を図ることができる。なお、ここでは、4軸の水平多関節型ロボットの場合を例に説明したが、例えば6軸の垂直多関節型ロボットの場合であれば次のようになる。すなわち、ツールの向きを決定するための変数X、Y、Z軸まわりの各回転角度のうち、いずれか1つ、あるいは、いずれか2つが任意変数として指定されれば、目標位置におけるツール手先の特定の軸まわりの回転角度が、ロボットの移動時間が極力短くなるような値に自動的に決定される。その結果、上記した4軸の水平多関節型ロボットの場合と同様の効果が得られる。すなわち、本手段によれば、複数の軸を有するロボット全般について、上記した作用および効果が得られる。また、変数値決定処理では、ツール先端が現在位置から目標位置まで移動する際に要する移動時間に基づく評価指標を用いるようになっている。従って、例えば加速度まで考慮した詳細な正確な移動時間を評価指標とすることも可能であるし、例えば速度のみを考慮した移動時間の概算値を評価指標とすることも可能である。このうち、前者のように評価指標を設定すれば、任意変数を決定する際の精度が高まる。すなわち、ロボットの動作時間を一層確実に短縮できる任意変数の値を設定することが可能となる。一方、後者のように評価指標を設定すれば、その演算を比較的容易に行い得るようになるため、演算時間の短縮を図ることが可能となる。上記した変数値決定処理では、変数値範囲内の数値を抽出する数が多いほど、また、変数値範囲を一度に狭める範囲所定範囲が狭いほど、評価指標が最小となる数値が目標位置における任意変数の値として決定される確率以下では最小化の精度と言うが高まるものの、変数値決定処理に要する演算時間は長くなる。そして、上記抽出する数が少ないほど、また、上記所定範囲が広いほど、最小化の精度が低くなるものの、変数値決定処理に要する演算時間は短くなる。このようなトレードオフの関係を考慮した上ではあるものの、ユーザは、上記抽出する数および上記所定範囲に加え、前述した要求精度範囲を適宜設定することにより、最小化の精度および演算時間について所望の仕様を満たすように設定を行うことができる。さて、目標位置における任意変数例えばツールのZ軸まわりの回転角度が取り得る全ての値について評価指標を演算し、任意変数の関数以下では評価関数と言うとして表すグラフ化すると、次のようなことが分かる。すなわち、その評価関数において、評価指標の最小値最適値の部分が谷の底になるとともに、評価指標の最小値ではない他の値最小値に準ずる値であり、以下では局所値と言うの部分も谷の底になる。このようになる理由は次のとおりである。ロボットは、ツール先端の位置各座標値が同じであっても、その姿勢が全く異なることがある。そのため、ロボットが取り得る様々な姿勢を、複数の形態に分けて区別するということが通常行われている。例えば4軸の水平多関節型ロボットの場合、第2軸の回転角度の極性が互いに異なる2種類の形態腕形態が存在する。つまり、4軸の水平多関節型ロボットの姿勢は、2種類の形態に分類される。また、6軸の垂直多関節型ロボットの場合、第1軸の回転角度が互いに180度異なる2種類の形態腕形態、第3軸の回転角度の極性が互いに異なる2種類の形態肘形態および第4軸の回転角度が互いに180度異なる2種類の形態手首形態が存在する。つまり、それら腕形態、肘形態および手首形態の組み合わせにより合計で8種類の形態に分類される。このような形態が同じであれば、ロボットの姿勢はあまり変化しない。しかし、形態が異なれば、ロボットの姿勢は大きく異なる。ロボットの姿勢が大きく異なるということは、移動時間に基づく評価指標の変化の傾向についても大きく異なることになる。そのため、ロボットの形態ごとに評価関数の谷が存在することになる。言い換えると、上記評価関数には、ロボットの形態が切り替わる境界である特異点を中心として、その両側に谷の部分が存在することになる。このようなことから、例えば、4軸の水平多関節型ロボットの場合、評価関数は少なくとも2つの谷を有し、6軸の垂直多関節型ロボットの場合、評価関数は少なくとも8つの谷を有することになる。変数値決定処理において、最小値ではなく局所値が目標位置における任意変数の値として設定されてしまうと、ロボットの動作時間を極力短くするという効果が若干低減する。この対策としては、前述した変数値範囲内の数値を抽出する数を多くすることにより、最小値が設定される確率を高めるとよい。しかし、この点のみを重視し、むやみに上記抽出する数を増やし過ぎることは、演算時間の増大を招くことに繋がるため、あまり望ましくない。このような点を改善するためには、請求項2または4に記載の手段を採用するとよい。請求項2または4に記載の手段によれば、変数値決定処理では、変数値範囲内の数値を所定の数だけ抽出する処理が最初に実行される際、同処理が2回目以降に実行される際に比べて抽出する数値の数を多くするとともに、変数値範囲内の数値が均等に抽出される。変数値範囲内の数値を抽出する処理が最初に実行される際、任意変数の値として設定可能な全ての数値範囲が変数値範囲として設定されている。従って、このときに、比較的多くの数値を変数値範囲内にわたって均等にまんべんなく抽出すれば、それらに基づいて、評価指標が最小となる数値最小値がどの範囲に存在するのかを容易に且つ確実に判断することが可能となる。すなわち、局所値の回避を容易に且つ確実に行うことができる。一方、2回目以降に同処理を行う際には、抽出する数値の数が比較的少なくなるものの、既に局所値の回避ができているため、最小化の精度に関する問題は生じ難い。本手段では、このように最初に上記処理が実行される際に比較的多くの数値を抽出するようにしているため、最小化の精度を高めつつ、変数値決定処理に要する演算時間がむやみに長くなることを防止できる。第1の実施形態以下、本発明の第1の実施形態について図1~図5を参照しながら説明する。図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。本実施形態において、任意変数であるツールのZ軸まわりの回転角度Rzの設定可能な数値範囲は、ロボット2の機構的な制限から-180度~180度となる。ステップS2では、設定された変数値範囲内のN個所定の数の数値が抽出される。なお、理由は後述するが、Nは3以上の整数であればよい。ステップS3では、目標位置におけるツールのZ軸まわりの回転角度Rzの値として、ステップS2で抽出された各数値をそれぞれ設定した場合における評価指標が演算される。ステップS4では、ステップS3で演算された各評価指標の値に基づいて、評価指標が最小となる数値が含まれるように、変数値範囲が所定範囲だけ狭められて再設定される。本実施形態では、以下のようにして変数値範囲を再設定している。例えば、ステップS2において、-90度、30度および150度の3個の数値が抽出されたN=3とする。そして、これら数値に対応する評価指標の値としては、30度が最も小さく、150度が2番目に小さく、-90度が最も大きい結果となった。このような場合、評価指標が最も小さくなる数値は、抽出した数値のうち評価指標が最も小さくなった30度の周辺、つまり-90度~30度の範囲、もしくは、30度~150度の範囲のいずれかに存在する可能性が高い。そして、評価指標が最も小さくなる数値は、評価指標が最も小さくなった30度から離れた範囲、つまり150度~-90度の範囲に存在する可能性は低い。そこで、-90度~30度~150度の範囲240度の範囲を新たな変数値範囲として設定する。すなわち、元々の変数値範囲360度の範囲から120度の範囲所定範囲だけ狭めた範囲が新たな変数値範囲として設定される。なお、ここでは、説明のためにN=3とした場合の説明を行ったが、N≧4とした場合であっても同様の手法により、変数値範囲の再設定が行われる。ステップS5では、再設定された変数値範囲が所定の要求精度範囲以下であるか否かが判断される。その結果、変数値範囲が要求精度範囲を超える場合ステップS5でNO、ステップS2に戻る。そして、変数値範囲をさらに狭めるため、ステップS2~S5の処理が再度実行される。一方、変数値範囲が要求精度範囲以下である場合ステップS5でYES、ステップS6に進む。ステップS6では、ステップS4で再設定された変数値範囲内の中心の数値が、目標位置におけるツールのZ軸まわりの回転角度Rz任意変数の値として決定される。例えば、変数値範囲が12度~14度であれば、13度が、目標位置におけるツールのZ軸まわりの回転角度Rzの値として決定される。なお、ステップS6では、変数値範囲内の所定の数値を、目標位置における任意変数の値として決定すればよい。従って、例えば、変数値範囲内の最小値や最大値を、目標位置における任意変数の値として決定してもよい。このような処理が実行されることにより、最終的に設定されている変数値範囲内のいずれか一つの数値が目標位置における任意変数の値として設定されることになる。そのため、要求精度範囲を狭くするほど、最終的に設定される変数値範囲が狭くなって評価指標が最小となる任意変数の値が求められる精度が高まるものの、上記処理ステップS2~S5の繰り返し回数が多くなって変数値決定処理に要する演算時間が長くなる。また、要求精度範囲を広くするほど、最終的に設定される変数値範囲が広くなって評価指標が最小となる任意変数の値が求められる精度が低くなるものの、上記処理の繰り返し回数が少なくなって変数値決定処理に要する演算時間が短くなる。要求精度範囲は、このようなトレードオフの関係を考慮した上で適宜設定すればよい。このようにして決定されたツールのZ軸まわりの回転角度Rz任意変数の値は、移動時間に基づく評価指標が最小となる値、あるいは、それに極めて近い値である。すなわち、決定されたZ軸まわりの回転角度Rzの値は、現在位置から目標位置に向けて移動する際におけるツールロボット2の移動時間が極力短くなるような値となっている。コントローラ3により上記した制御が自動的に実行されるため、ユーザがティーチング時に行う作業としては、前述したように目標位置におけるツール先端の各座標値を指定するとともに、ツールのZ軸まわりの回転角度Rzを任意変数として指定するだけでよい。そして、コントローラ3は、値が指定された目標位置におけるツール先端のX、Y、Z軸座標の値に加え、上記した各処理により自動的に決定された目標位置におけるツールのZ軸回りの回転角度Rzの値ツールの向きに基づいて、ツール先端を現在位置から目標位置に向けて移動させることができる。これにより、ティーチング時におけるユーザ作業者の作業負担が軽減されるとともに、ロボット2の移動時間が短縮されることになる。変数値決定処理においては、ツール先端が現在位置から目標位置まで移動する際に要する移動時間に基づく評価指標を用いるようにしている。従って、例えば各軸の加速度まで考慮した詳細な正確な移動時間を評価指標とすることも可能であるし、例えば各軸の速度のみを考慮した移動時間の概算値近似値を評価指標とすることも可能である。つまり、評価指標を設定する上での自由度が高い。このうち、前者のように評価指標を設定すれば、任意変数を決定する際の精度が高まる。すなわち、ロボット2の動作時間を一層確実に短縮できる任意変数の値を設定することが可能となる。一方、後者のように評価指標を設定すれば、その評価指標を求める演算を比較的容易に行い得るようになるため、演算時間の短縮を図ることが可能となる。変数値決定処理では、変数値範囲内の数値を抽出する数が多いほど、また、変数値範囲を一度に狭める範囲所定範囲が狭いほど、評価指標が最小となる数値が目標位置における任意変数として決定される確率以下では最小化の精度と言うが高まるものの、変数値決定処理に要する演算時間が長くなる。そして、上記抽出する数が少ないほど、また、上記所定範囲が広いほど、最小化の精度が低くなるものの、変数値決定処理に要する演算時間が短くなる。このようなトレードオフの関係を考慮した上ではあるものの、ユーザは、上記抽出する数および上記所定範囲に加え、前述した要求精度範囲を適宜設定することにより、最小化の精度および演算時間について所望の仕様を満たすように設定することができる。このように、本実施形態のロボットシステム1は、ユーザフレンドリなシステムであると言える。図3は、目標位置におけるツールのZ軸まわりの回転角度Rz任意変数が取り得る全ての値について評価指標を演算し、任意変数の関数以下では評価関数と言うとして表したグラフ化したものである。この図3に示すように、評価関数は、2つの谷を有しており、評価指標の最小値最適値の部分が一方の谷の底に位置し、評価指標の最小値ではない他の値最小値に準ずる値であり、以下では局所値と言うの部分が他方の谷の底に位置している。評価関数にこのような2つの谷が存在する理由は、次のとおりである。ロボットは、ツール先端の位置X、Y、Z軸座標値が同じであっても、その姿勢が全く異なることがある。そのため、通常、ロボットが取り得る様々な姿勢を、複数の形態に分けて区別するということが行われている。例えば、本実施形態のロボット24軸の水平多関節型ロボットの場合、2つの形態に分類される。すなわち、第2軸J2の回転角度がプラスになる腕形態と、第2軸J2の回転角度がマイナス-になる腕形態とに分類される。このような形態が同じであれば、ロボット2の姿勢はあまり変化しない。しかし、形態が異なれば、ロボット2の姿勢は大きく異なる。ロボット2の姿勢が大きく異なるということは、移動時間に基づく評価指標の変化の傾向についても大きく異なることになる。そのため、ロボット2の形態ごとに評価関数の谷が存在することになる。言い換えると、上記評価関数には、ロボット2の形態が切り替わる境界である特異点を中心として、その両側に谷の部分が存在することになる。このようなことから、本実施形態のロボット2の場合、評価関数は少なくとも2つの谷を有することになる。変数値決定処理において、最小値ではなく局所値が目標位置における任意変数の値として設定されてしまうと、ロボット2の動作時間を極力短くするという効果が若干低減する。その対策としては、ステップS2で変数値範囲内の数値を抽出する数を多くするNの値を大きくすることにより、最小値が設定される確率を高めるとよい。しかし、この点のみを重視し、むやみに上記抽出する数を増やし過ぎることは、演算時間の増大を招くことに繋がるため、あまり望ましくない。このような点を改善するためには、変数値決定処理を次のように変更するとよい。すなわち、変数値決定処理が開始された後、最初にステップS2が実行される際、ステップS2が2回目以降に実行される際に比べて、抽出する数を多くするNの値を大きくするとともに、変数値範囲内の数値を均等に抽出するように変更する。ステップS2が最初に実行される際、任意変数の値として設定可能な全ての数値範囲が変数値範囲として設定されている。従って、このときに、比較的多くの数値を変数値範囲内にわたって均等にまんべんなく抽出すれば、それらに基づいて、評価指標が最小となる数値最小値がどの範囲に存在するのかを容易に且つ確実に判断することが可能となる。つまり、局所値の回避を容易且つ確実に行うことができる。一方、ステップS2が2回目以降に実行される際には、抽出する数値の数が比較的少なくなるものの、既に局所値の回避ができているため、最小化の精度に関する問題は生じ難い。また、ステップS2~S4が2回目以降に実行される際、評価指標の最小値を含むように変数値範囲を狭くする手法として、例えば黄金分割法などの収束が早い手法を用いることが可能である。なお、黄金分割法を用いる場合、抽出する数は2個以上N≧2でよい。このように、最初にステップS2が実行される際に比較的多くの数値をまんべんなく抽出することで、最小化の精度を高めつつ、変数値決定処理に要する演算時間がむやみに長くなることを防止できる。次に、本実施形態のロボットシステム1により得られる具体的な効果について、図4および図5も参照して説明する。図4は、ツール先端を現在位置Pcから目標位置Pdに向けて移動させる際におけるロボットの態様を模式的に示している。図4に示すロボットは、4軸の水平多関節型ロボットであり、その手先にツールとしてエアチャックが取り付けられている。なお、図4では、各軸および各リンクをそれぞれ丸印および直線で示すとともに、ツール先端を矢印で示している。また、現在位置におけるロボットの状態を点線で示すとともに、目標位置におけるロボットの状態を実線で示している。ここでは、現在位置Pcから目標位置Pdまでツール先端を移動させ、ツールであるエアチャックによりワークを把持する作業が行われるものとする。上記ケースにおけるティーチング作業は、従来の手法によれば次のように行われる。すなわち、ティーチングを担当する作業者は、まず、図4のa、b、cのそれぞれに示す状態姿勢について検討する。つまり、作業者は、ツールの向きを大まかに変えてみて、どの向きが良さそうであるかを推測する。その結果、cの状態が良さそうであると判断した場合、cの状態をベースにし、そのc状態からツールの向きを少しずつ変化させたもの図4のd、e、fのそれぞれに示す状態について検討する。その結果、図4fの状態が最適である移動時間が短くなるという判断に至る。なお、ここでは、説明を簡略化するため、作業者が検討する状態の数を少なくするとともに、少ない繰り返し作業で最適な状態が見つかるケースとしている。実際には、さらに多くの状態について検討したり、繰り返し回数が増えたりすることもある。これに対し、本実施形態のロボットシステム1によれば、目標位置Pdにおけるツールの向きは、コントローラ3により、ロボット2の移動時間が極力短くなるような向きに自動的に決定される。従って、従来の手法のような繰り返しの過程を経ることなく、図4のfの状態ツールの向きが最適である移動時間を極力短くできるという結果が容易に得られる。このように、従来の手法によれば、ティーチングを担当する作業者の経験と推測により、少しずつ目標位置におけるロボットの状態姿勢を変化させる。そして、その作業を何回例えば5回か繰り返した結果、例えば、現在位置および目標位置におけるツールの向きが互いに同じロボットの姿勢図4のaに比べ、ロボットの動作時間が短くなる例えば25程度の改善ツールの向きを得ることが可能となっていた。これに対し、本実施形態のロボットシステム1によれば、ティーチングを担当する作業者の経験などに関係なく、従来の手法による効果と同程度の効果を得ることができる。さらに、その際、作業者は目標位置におけるロボットの姿勢について具体的に検討する必要がないため、その作業負担が大きく軽減されることになる。図5は、ツール先端を現在位置Pcから目標領域Ad内の任意の目標位置に向けて移動させる際における図4相当図である。この場合、図5のaに示す目標領域Ad内におけるどの位置に移動すればよいかについては実作業時にカメラなどの外部機器から与えられ、ティーチングの時点において作業者は知ることができないものとする。このようなケースでは、目標領域Ad内のどの位置に目標位置が設定されるかによってツールの最適な向きが変化する。そのため、従来の手法では、図5のbに示すように、目標領域Adを複数の小領域に分割し、それら小領域ごとに最適なツールの向きを教示するなど、非常に手間がかかっていた。また、どのように目標領域Adを分割するかによって、最適なツールの向きが得られるかどうかが変化するため、ティーチングを担当する作業者の個人能力に大きく依存する部分があった。これに対し、本実施形態のロボットシステム1によれば、実作業時に初めてカメラなどの外部機器から目標位置が与えられるケースであっても、コントローラ3は、与えられた目標位置に基づいて、その目標位置における最適なツールの向きを自動的に決定する。そのため、従来の手法のように目標領域Adを小領域に分割し、それら小領域ごとにティーチングをするといった手間のかかる作業を省くことが可能となる。第2の実施形態以下、第1の実施形態に対し、対象とするロボットの種類を変更した第2の実施形態について図6を参照しながら説明する。図6は、第1の実施形態における図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は、第1の実施形態と同様の任意変数設定処理および変数値決定処理を実行することが可能である。例えば、ツールの向きを決定するための変数X、Y、Z軸まわりの回転角度Rx、Ry、Rzのうち、いずれか1つ、あるいは、いずれか2つが任意変数として指定されれば、その指定された変数が任意変数として設定される任意変数設定処理。そして、コントローラ3により変数値決定処理が行われる。これにより、目標位置における任意変数の値ツールの向きが、ロボット22の移動時間が極力短くなるような値に自動的に決定される。その結果、本実施形態の構成においても、第1の実施形態と同様の作用および効果が得られる。その他の実施形態なお、本発明は上記し且つ図面に記載した各実施形態に限定されるものではなく、次のような変形または拡張が可能である。上記各実施形態では、本発明を4軸の水平多関節型のロボット2、または6軸の垂直多関節型のロボット22に適用した例を説明したが、本発明は、複数の軸を有するロボット全般に適用可能である。