"空間に固定されている周辺物の形状を多面体で近似した周辺物近似多面体が前記空間を占有する領域である周辺物占有領域と、ロボットの着目部位の形状を多面体で近似した着目部位近似多面体とを記憶し、前記ロボットの動作に伴って、前記着目部位近似多面体が複数の時刻の各々において前記空間を占有する領域である、複数の着目部位占有領域を計算し、前記複数の着目部位占有領域と前記周辺物占有領域とに基づいて、前記ロボットの着目部位と前記周辺物との干渉の有無を予測する、干渉予測方法であって、前記複数の着目部位占有領域を前記複数の時刻の順に並べたときに、隣り合う着目部位占有領域同士の組合せの凸包を全て計算し、前記周辺物占有領域を凸多面体の和として計算し、全ての前記凸包と前記凸多面体との共有領域の有無を、前記ロボットの着目部位と前記周辺物との干渉の有無として判定する、干渉予測方法。空間に固定されている周辺物の形状を多面体で近似した周辺物近似多面体が前記空間を占有する領域である周辺物占有領域と、ロボットの着目部位の形状を多面体で近似した着目部位近似多面体とを記憶する記憶部と、前記ロボットの動作に伴って、前記着目部位近似多面体が複数の時刻の各々において前記空間を占有する領域である、複数の着目部位占有領域を計算する着目部位占有領域計算部と、前記複数の着目部位占有領域と前記周辺物占有領域とに基づいて、前記ロボットの着目部位と前記周辺物との干渉の有無を予測する干渉予測部と、を備える干渉予測装置であって、前記干渉予測部は、前記複数の着目部位占有領域を前記複数の時刻の順に並べたときに、隣り合う着目部位占有領域同士の組合せの凸包を全て計算する凸包計算部と、前記周辺物占有領域を凸多面体の和として計算する周辺物占有領域計算部と、を有し、前記干渉予測部は、全ての前記凸包と前記凸多面体との共有領域の有無を、前記ロボットの着目部位と前記周辺物との干渉の有無として判定する、干渉予測装置。特許文献1又は2に記載の技術では、移動終了位置での干渉は確認できても、移動経路上での干渉を確認予測することは難しい。例えば、特許文献2の図2は、収納箱4の中にあるワークピース7を取出す時のツール3の移動経路を示すものであるが、移動終了時刻T4でのツール3と収納箱4とは干渉しないが、移動中の時刻T2とT3の間にツール3と周辺物4とが干渉してしまう場合がある。一方、特許文献3に記載の技術は、生成された移動経路上での干渉を高い精度で予測するために、移動経路上の全補間位置について、逐次的にロボットの着目部位と周辺物とが干渉するか否かを調べるものと解される。しかしこの技術では、計算時間が過度に長くなってしまい、ロボット動作中にリアルタイムで干渉を予測するには適さないと思われる。特許文献4に記載の技術は、干渉予測に際しいわゆる凸包を利用するものであるが、これは静止状態にある多面体同士の干渉を予測するものであり、移動する多面体には適用できない。また特許文献5に記載の技術は、複数のロボットや加工機械治具が同時に動作する際に、該ロボット間等の干渉判定を、それぞれの動作領域を覆う多面体を計算し、該多面体同士の干渉判定に置き換えるものと解される。しかし、動作領域に対応する多面体が凸多面体に限定されないため、干渉判定計算が複雑で時間が掛かる場合があり、ロボット動作中にリアルタイムで干渉判定を行うには適さない。そこで本発明は、ロボットの手先に搭載されているツールやセンサ等の着目部位がロボットの動作に伴って移動する場合に、移動経路上での着目部位とロボットの周りに固定設置されている周辺機器や柵等の周辺物との干渉を、実用的な精度及び計算速度にて予測する干渉予測方法及び干渉予測装置を提供することを目的とする。上記目的を達成するために、請求項1に記載の発明は、空間に固定されている周辺物の形状を多面体で近似した周辺物近似多面体が前記空間を占有する領域である周辺物占有領域と、ロボットの着目部位の形状を多面体で近似した着目部位近似多面体とを記憶し、前記ロボットの動作に伴って、前記着目部位近似多面体が複数の時刻の各々において前記空間を占有する領域である、複数の着目部位占有領域を計算し、前記複数の着目部位占有領域と前記周辺物占有領域とに基づいて、前記ロボットの着目部位と前記周辺物との干渉の有無を予測する、干渉予測方法であって、前記複数の着目部位占有領域を前記複数の時刻の順に並べたときに、隣り合う着目部位占有領域同士の組合せの凸包を全て計算し、前記周辺物占有領域を凸多面体の和として計算し、全ての前記凸包と前記凸多面体との共有領域の有無を、前記ロボットの着目部位と前記周辺物との干渉の有無として判定する、干渉予測方法を提供する。請求項2に記載の発明は、空間に固定されている周辺物の形状を多面体で近似した周辺物近似多面体が前記空間を占有する領域である周辺物占有領域と、ロボットの着目部位の形状を多面体で近似した着目部位近似多面体とを記憶する記憶部と、前記ロボットの動作に伴って、前記着目部位近似多面体が複数の時刻の各々において前記空間を占有する領域である、複数の着目部位占有領域を計算する着目部位占有領域計算部と、前記複数の着目部位占有領域と前記周辺物占有領域とに基づいて、前記ロボットの着目部位と前記周辺物との干渉の有無を予測する干渉予測部と、を備える干渉予測装置であって、前記干渉予測部は、前記複数の着目部位占有領域を前記複数の時刻の順に並べたときに、隣り合う着目部位占有領域同士の組合せの凸包を全て計算する凸包計算部と、前記周辺物占有領域を凸多面体の和として計算する周辺物占有領域計算部と、を有し、前記干渉予測部は、全ての前記凸包と前記凸多面体との共有領域の有無を、前記ロボットの着目部位と前記周辺物との干渉の有無として判定する、干渉予測装置を提供する。本発明によれば、動作直前に実用的な精度及び計算速度で自動的に干渉を予測できるので、バラ積みされたワークピースの取出し等の用途において、干渉を避けながらロボットを動作させることができる。また本願発明では、ロボットの着目部位の隣り合う補間位置における領域同士の凸包凸多面体の範疇を求め、周辺物を凸多面体の和で表し、干渉判定を凸多面体同士のそれに置き換え、計算の簡素化高速化を図り、ロボット動作中のリアルタイムでの干渉判定を実現している。図1は、本発明に係る干渉予測装置の一実施形態の概要図である。なお、本願発明におけるロボットの着目部位とは、ロボットアームの本体又は付属物のうち、動作中に周辺機器と干渉する可能性のある部位をいう。本実施形態では、ロボット制御装置6内に干渉予測のためのソフトウエアを設けることによって、干渉予測装置を構成している。ロボット5の手首先端には、ワークピース7を取出すためのツール3、ワークピース7を撮像するためのカメラ2、及びワークピース7にレーザ光を投光するレーザ投光器1が取り付けられている。カメラ2及びレーザ投光器1によって、ワークピース7の位置及び姿勢以降、位置姿勢と称するを検出する3次元視覚センサが構成される。本実施形態では、ワークピース7は収納箱4内に収納されている。この収納箱4には複数のワークピース7がバラ積み状態で収納されており、故に各々のワークピース7はその位置姿勢が不規則な状態である。ロボット5、レーザ投光器1、カメラ2及びツール3は従来周知のものでよく、故に詳細な説明は省略する。ロボット制御装置6は、プロセッサ、ROM、RAM、不揮発性RAM、表示装置付き入力手段、入出力インタフェース、カメラインタフェース、ロボット各関節軸のサーボモータ等を駆動制御するサーボ制御器等を備える点では、従来のロボット制御装置と同様でよい。図示例のロボット5の関節軸の数は6つであり、ツール3の位置姿勢が命令されると、ロボット制御装置6は各関節軸の回転角を逆算し、ツール3がその位置姿勢となるようにロボット5の各軸の動作を制御する。また、入出力インタフェースにはレーザ投光器1及びツール3が接続され、カメラインタフェースにはカメラ2が接続される。ロボット5の手首先端に対するツール3の位置姿勢と、ツール3の形状と、収納箱4の位置姿勢と、収納箱4の形状と、教示時のワークピース7の位置姿勢と、その位置姿勢に対してワークピース7を把持する際のツールの位置姿勢とは、ロボット制御装置6のメモリに予め設定記憶させておくものとする。その際、記憶するツール3及び収納箱4の形状に関して、図2に示すように、ツール3は2つの直方体を組み合わせて多面体で近似した領域D1で表し、収納箱4は直方体の上側から少し小さめの直方体をくり抜いた多面体で近似した領域D2で表すものとする。領域D1、D2は共に複数の直方体領域の和として表現することができるが、干渉予測の計算が簡単になるように、近似する領域は凸多面体の和で表せるようにする。具体的には、それぞれの多面体領域の持つ頂点、辺の各々にインデックスを割り振り、各頂点の空間上の座標値、各辺の両端にある頂点のインデックス、各面の端にある辺のインデックスを記憶する。例えば、近似された領域が、図3に示すような各辺の長さが3である正四面体凸多面体の場合、各頂点及び各辺にインデックスを割り振り、ある座標系における頂点V1、頂点V2、頂点V3、頂点V4それぞれの座標値000000002449、173200000000、086615000000、086615000000と、辺E1、辺E2、辺E3、辺E4、辺E5、辺E6それぞれの両端の頂点のインデックスV1V2、V1V4、V1V3、V2V4、V3V4、V2V3と、面S1、面S2、面S3、面S4それぞれの端にある辺のインデックスE1E2E4、E2E3E5、E1E3E6、E4E5E6を記憶することになる。図4は、ロボット5を用いたワークピース7の取出し作業において、ツール3と収納箱4との干渉が起こるか否かを判断する処理手順を示すフローチャートである。処理手順では、まず、ロボット制御装置6からの指令により、ロボット5を収納箱4内のワークピース7を撮像できる位置姿勢に移動させた後、レーザ投光器1及びカメラ2を用いて、収納箱4内のワークピース7の位置姿勢を計測するステップ101。次に、この計測したワークピース7の位置姿勢と、予め記憶しておいた教示時のワークピース7の位置姿勢と、予め記憶しておいたワークピースを把持する際のツールの位置姿勢とを合わせて、計測したワークピース7をツール3で把持して収納箱から取出すことのできるツール3の位置姿勢を算出する。そして、ツール3に関して、ワークピース7を計測した時の位置姿勢を移動開始時の位置姿勢とし、計測したワークピース7をツール3で把持して収納箱から取出すことのできる位置姿勢を移動終了時の位置姿勢とした、ツール3の移動経路を生成するステップ102。移動経路の生成方法には様々なものがあるが、例えば、ロボット各関節軸の回転速度が常に一定となるような移動経路の生成方法がある。即ち、移動開始時のロボット5の各関節軸kk=1,2,,6の回転角の値をθkとし、移動終了時の各関節軸kの回転角の値をφkとし、移動開始時刻を0ゼロとし、移動終了時刻をTとした場合に、時刻t0≦t≦Tにおける各関節軸kの回転角がθkΔk×tとなるような移動経路を生成する方法である。但し、Δk=φk-θk/Tである。但しこのような移動経路の生成方法は一例であって、ここで述べる干渉予測の適用は、移動経路の生成方法に依るものではない。次に、移動開始から移動終了までの移動時間をn等分し、得られたn1個の時刻時点をT0T1Tnとするステップ103。T0およびTnはそれぞれ移動開始時刻と移動終了時刻である。分割数nは、干渉予測の粗精や処理時間を考慮して、予め与えておいてもよいし、移動時間及び移動経路長とから逐次決定してもよい。分割数を大きくすれば干渉予測の精度は向上するが、処理時間は分割数にほぼ比例して大きくなる。リアルタイムで干渉予測の処理を行わなければならないため、処理時間はできるだけ短い方がよい。図5は、分割数n=4である場合の各時点でのツール3の位置姿勢と、収納箱4と、ワークピース7との位置関係を表したものである。ここではツール3の移動時間を20秒、移動経路長を400mmとする。移動時間を4等分した場合、移動開始時より、00秒、05秒、10秒、15秒、20秒の5つの時点が生成されることになり、隣接する時点間でのロボットの移動経路長は100mmになる。次に、変数jに2を設定j←2し、ツールの凸包D1の計算を行うステップ104。先ず、ツール3が占有する領域D1に対し、その凸包D1の頂点を計算する。凸包とは与えられた集合の任意の2点を結ぶ線分を含む集合の包含関係の意味で最小の集合のことであり、換言すれば点の集合体を全て含む最小の凸形状、すなわち点の集合体のうち最も外側の点を直線で結ぶことによって形成される多面体をいう。従って領域D1が多面体であれば凸包D1も凸多面体となる。凸包D1の頂点は、例えばQuickHullTheQuickhullAlgorithmforConvexHullGeometryCenterTechnicalReportGCG53July1993と呼ばれるアルゴリズムを用いて、多面体領域D1の各頂点から求めることができる。次にステップ105において、時点Tjでの直線度Ljを求める。具体的には、ステップ104で求めた凸包D1の各頂点Vに対し、図6に示すように、各頂点Vについて時点Tj-1、Tj、Tj1でのその頂点の位置をそれぞれPj-1、Pj、Pj1とし、点Pjから線分Pj-1Pj1へ下した垂線の足をHjとして、頂点Vの時点Tjでの直線度Lvjを以下の式1から計算する。さらに、全ての頂点の時点Tjでの直線度Lvjのうちの最小値を、ツール3の時点Tjでの直線度Ljとするステップ105。直線度Lvjは範囲0~1の値を取り得るが、値が1に近いほど、折れ線Pj-1PjPj1が直線に近いと言える。そして、ロボット制御装置に予め記憶させておいた0に近い正値εに対して、ツール3の直線度Ljと1-εとの大小関係を判定しステップ106、Ljが1-εより大きい場合は、Tj←Tj1、Tj1←Tj2、、Tnー1←Tn、n←n-1とすることによって、時点の列から時点Tjを削除するステップ107。これにより、干渉予測の精度をほとんど低下させることなく、後のステップで計算する凸包の個数を1つ減じて、計算にかかる時間を削減することができる。干渉予測の精度がほとんど低下しない理由に関しては、後述する。ステップ108では、jとn-1との大小関係を判定し、j<n-1であるうちはj←j1としてステップ109、ステップ105に戻り、j<n-1が成り立たなくなるまで各時点での直線度Ljの値のチェックを行う。次に、j←1としてステップ110、各時点Tjj=1,2,,nでツール3が占有する領域をD1jとして、隣接する時点Tj-1、Tjの領域D1j-1、D1jの凸包Cjを計算するステップ111。領域D1jは、各時点でTjのツール3の移動量に応じて領域D1を3次元空間で剛体変換させた領域である。領域D1は多面体なので、領域D1jも多面体であり、領域D1j-1、D1jの凸包Cjも凸多面体となる。ステップ111の詳細について説明する。先ず、凸包Cjの各頂点は、多面体領域D1j-1、D1jの各頂点から上述のQuickHull等により求める。次に、凸包Cjの各辺は、凸包Cjの全ての2頂点の組合せV1,V2に対して、線分V1V2が凸包Cjの辺であるかの判断を以下の手順で行って求める。空間上の直線V1V2に垂直な平面Πに凸包Cjの全ての頂点を正射影する。この時、頂点V1,V2は平面Π上の同一点Pに射影される。平面Π上において、正射影した全ての点の凸包の頂点か辺の上に点Pがあるならば、線分V1V2は凸包Cjの辺であると判断できる。平面上の凸包の頂点は同様にQuickHullにより計算可能である。また、平面上において、凸包の各頂点P1,P2を結ぶ線分P1P2がその凸包の辺であるか否かは、以下のようにして判断する。線分P1P2に垂直な直線λ上にその凸包の全ての頂点を正射影し、直線λ上において、それらの点の凸包である線分の両端のどちらかに線分P1P2を正射影した点があるならば、線分P1P2は辺であると判断できる。また、凸包Cjの各面は、凸包Cjの3辺の組合せで三角形を成す全ての組合せに対して、その三角形を含む平面に垂直な直線Λに凸包Cjの全ての頂点を正射影し、直線Λ上において、それらの点の凸包である線分の両端のどちらかにその三角形を正射影した点があるならば、その三角形は凸包Cjの面と判断できる。図7に、領域D1j-1、D1jとそれらから計算された凸包Cjの例を示す。領域D1j-1、D1jが実線で示された各時刻でのツール3に実質相当する領域であるとすると、凸包Cjは、領域D1j-1、D1jに破線で示された領域を加えたものとなる。次に、凸包Cjと多面体領域D2との共通領域の有無を調べるステップ112。多面体領域D2は複数の凸多面体領域D2jの和で表されるので、凸包Cjと凸多面体D2jの組み合わせで共通領域を持つものがあれば、凸包Cjと多面体領域D2に共通領域があると言える。凸包Cjと凸多面体領域D2jの何れの面も多角形なので、図8のように複数の三角形への分割図8では六角形を4つの三角形I~IVに分割が可能である。すると、凸包Cjと凸多面体領域D2jの何れも三角形のみで覆われた閉領域となり、凸包Cjを覆う三角形と凸多面体領域D2jを覆う三角形の辺線分とが交差する組合せが1つ以上あるか、凸包Cjを覆う三角形の辺線分と凸多面体領域D2jを覆う三角形とが交差する組合せが1つ以上あるか、もしくは凸包Cjと凸多面体領域D2jのどちらかの領域がもう一方の領域を完全に含むか、これらの3つの条件の少なくとも1つが成立するか否かで、共通領域の有無の判断を行うことができる。線分と三角形の交差は、以下のように判断する。空間上の線分と三角形について、線分の両端の点A1、A2の空間上の座標値をそれぞれα1、α2とし、三角形の頂点B1、B2、B3の空間上の座標値をβ1、β2、β3とする。α1、α2、β1、β2、β3は3次元ベクトルで表される。まず、3×3行列α1-α2、β1-β3、β2-β3が正則行列であるか否かを計算し、正則である場合は線分A1A2と三角形B1B2B3が平行ではなく、正則ではない場合は線分A1A2と三角形B1B2B3が平行である、と判断する。線分A1A2と三角形B1B2B3が平行ではない場合は、線分A1A2を含む空間上の直線と三角形B1B2B3を含む空間上の平面との交点の空間上の座標値をxとすると、x=s1α1s2α2、x=t1β1t2β2t3β3と一意に表すことができる。但し、s1、s2、t1、t2、t3はs1s2=1、t1t2t3=1を満たす実数値である。計算したs1、s2、t1、t2、t3の5つの全ての値が0以上かつ1以下である場合は、線分A1A2と三角形B1B2B3は交差するものと判断できる。一方、線分A1A2と三角形B1B2B3が平行である場合は点A1と平面B1B2B3の距離を計算し、その距離が0ならば、線分A1A2と三角形B1B2B3が同じ平面上にあることになる。線分A1A2と三角形B1B2B3が同じ平面上にある場合は、2×2行列α1-α2、β1-β2が正則行列ならば、線分A1A2と三角形B1B2B3の辺B1B2とは平行ではないので、線分A1A2を含む空間上の直線と辺B1B2を含む空間上の直線との交点の座標値をyとすると、y=s1α1s2α2、x=t1β1t2β2と一意に表すことができる。但し、s1、s2、t1、t2はs1s2=1、t1t2=1を満たす実数値である。計算したs1、s2、t1、t2の4つの全ての値が0以上かつ1以下である場合は、線分A1A2と辺B1B2が交差するので、線分A1A2と三角形B1B2B3は交差するものと判断できる。線分A1A2と三角形B1B2B3が同じ平面上にある場合は、辺B2B3と辺B3B1についても辺B1B2と同様に、線分A1A2との交差を調べ、線分A1A2と三角形B1B2B3の交差を判断する。何れの交差の判断でも線分A1A2と三角形B1B2B3が交差するとの判断が得られなければ、線分A1A2と三角形B1B2B3は交差しないと判断する。凸包Cjが凸多面体領域D2jを完全に含むか否かは、凸多面体領域D2jの全頂点に関して凸包Cjの重心とその頂点を結ぶ線分が凸包Cjの表面と交わらないか、そうでないかで判断することができる。凸多面体領域D2jが凸包Cjを完全に含むか否かも、同様にして判断することができる。上述のような共通領域の有無の判断の結果、凸包Cjと多面体領域D2との共通領域が有る場合は、移動経路中でツール3と収納箱4とが干渉すると判断ステップ113して処理を終了し、共通領域が無い場合は、j<nステップ114か否かを調べる。ステップ114において、j<nならば、ステップ109に進んでjにj1を設定しj←j1、ステップ105に戻る。一方、ステップ114においてj≧nならば、移動経路中でツール3と収納箱4とが干渉しないと判断ステップ115して処理を終了する。図9は、図5に示した時点T2と時点T3の間の部分を拡大したものであり、時点T2、T3の各々でツール3が占有する2つの領域の凸包C3と多面体領域D2との共通領域が有ることになる。よって、図5の移動経路の場合、干渉予測装置はツール3と収納箱4とが干渉すると予測判断する。凸包Cjと領域D2の共通領域の有無の判断の計算に要する時間、2つの領域D1j-1、D1jから凸包Cjを計算するのに要する時間は、それぞれ1~2ミリ秒msを要する。図5の移動経路の場合、ロボットの移動時間の分割数nが4なので、干渉予測に要する計算時間は、最大で22×4=16ms程度となり、ロボットの動作に差し支える程の時間にはならない。先に、直線度Ljの値が1に近く、ツール3が占有する領域D1の凸包の各頂点の移動を表す折れ線Pj-1PjPj1が直線に近い場合、ステップ107で時点の列から時点Tjを削除しても、干渉予測の精度は殆ど低下しないと述べたが、それは以下の理由に依る。折れ線Pj-1PjPj1が直線に近い場合は、領域D1j-1、D1jの凸包と領域D1j、D1j1の凸包との和が、領域D1j-1、D1j1の凸包とほぼ一致する。したがって、凸包と多面体領域D2との共通領域の有無により干渉を判断する場合においては、時点の列から時点Tjを削除して領域D1jの計算を省いても、干渉予測の精度は殆ど低下しない。以上述べてきたように、本発明では、移動経路上の幾つかの補間位置において着目部位が占有する領域を求め、隣り合う補間位置における領域同士の凸包を全て求め、周辺物を凸多面体の和で表し、それら全ての凸包と全ての凸多面体との干渉を調べることによって、移動経路上での着目部位と周辺物との干渉を予測する。"