(57)【特許請求の範囲】
【請求項１】
ロボットと該ロボットの動作を規制するべき対象物であるロボット動作規制対象物とが互いに干渉しないように該ロボットの動作を規制する方法であって、
前記ロボットの形状を特定する１以上の第１の形状点及び前記ロボット動作規制対象物の形状を特定する１以上の第２の形状点を定義し、
３次元座標系の３つの座標軸によって定義される３つの座標平面に前記第１の形状点及び前記第２の形状点をそれぞれ投影し、
前記３つの座標平面それぞれについて、該座標平面に投影された前記第１の形状点に対応する投影点についての第１の凸包、又は、該座標平面に投影された前記第２の形状点に対応する投影点についての第２の凸包、又は、前記第１の凸包及び前記第２の凸包の双方を求め、
前記３つの座標平面それぞれについて、前記第１の凸包と前記第２の形状点に対応する投影点との重なり具合、又は、前記第１の形状点に対応する投影点と前記第２の凸包との重なり具合、又は、前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定する、
ロボットの動作規制方法。
【請求項２】
前記第１の形状点及び前記第２の形状点を定義することは、
前記第１の形状点を複数のグループに分類すること、又は、前記第２の形状点を複数のグループに分類すること、又は、前記第１の形状点及び前記第２の形状点をそれぞれ複数のグループに分類することを含む、請求項１に記載のロボットの動作規制方法。
【請求項３】
前記第２の凸包は前記ロボットの進入を禁止する空間である進入禁止空間の形状を特定する前記第２の形状点についての凸包を含み、
前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定することは、
前記３つの座標平面のすべてについて、前記第１の凸包と前記進入禁止空間を表現した前記第２の凸包との重なりが有る場合、前記ロボットが前記進入禁止空間に進入していると判定し、そうでない場合、前記ロボットが前記進入禁止空間に進入していないことを判定することを含む、
請求項１又は２に記載のロボットの動作規制方法。
【請求項４】
前記第２の凸包は前記ロボットの外部への進出を禁止する空間である進出禁止空間の形状を特定する前記第２の形状点についての凸包を含み、
前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定することは、
前記３つの座標平面のいずれかについて、前記第１の凸包と前記進出禁止空間を表現した前記第２の凸包から前記第１の凸包の一部がはみ出している場合、前記ロボットが前記進出禁止空間の外部に進出していると判定し、そうでない場合、前記ロボットが前記進出禁止空間の外部に進出していないことを判定することを含む、
請求項１又は２に記載のロボットの動作規制方法。
【請求項５】
前記第２の凸包は前記ロボットの外部への進出を禁止する空間である進出禁止空間の形状を特定する前記第２の形状点についての凸包を含み、
前記第１の形状点に対応する投影点と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定することは、
前記３つの座標平面のすべてについて、前記第１の形状点に対応する投影点のすべてが前記進出禁止空間を表現した前記第２の凸包に含まれる場合、前記ロボットが前記進出禁止空間の外部へ進出していないと判定し、そうでない場合、前記ロボットが前記進出禁止空間の外部へ進出していることを判定することを含む、
請求項１又は２に記載のロボットの動作規制方法。
【請求項６】
前記第２の凸包は、前記ロボットの進入を禁止する空間である進入禁止空間の形状を特定する前記第２の形状点についての凸包と、前記ロボットの外部への進出を禁止する空間である進出禁止空間の形状を特定する前記第２の形状点についての凸包とを含み、
前記第２の凸包を求めることは、前記進入禁止空間を表現した前記第２の形状点についての凸包と前記進出禁止空間を表現した前記第２の形状点についての凸包とを重ね合わせて凹領域を特定することを含む、
請求項１又は２に記載のロボットの動作規制方法。
【請求項７】
前記３つの座標平面のいずれにも平行でない前記ロボットの進行方向に平行な第４の平面に前記第１の形状点及び前記第２の形状点をそれぞれ投影することと、
前記第４の平面に投影された前記第１の形状点に対応する投影点についての第１の凸包、及び、前記第４の平面に投影された前記第２の形状点に対応する投影点についての第２の凸包を求めることと、をさらに含み、
前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定することは、
前記第４の平面における前記第１の凸包と前記第２の凸包との重なり具合を判定すること、をさらに含む、
請求項１又は２に記載のロボットの動作規制方法。
【請求項８】
ロボットと該ロボットの動作を規制するべき対象物であるロボット動作規制対象物とが互いに干渉しないように該ロボットの動作を規制する装置であって、
前記ロボットの形状を特定する１以上の第１の形状点及び前記ロボット動作規制対象物の形状を特定する１以上の第２の形状点を定義する手段と、
３次元座標系の３つの座標軸によって定義される３つの座標平面に前記第１の形状点及び前記第２の形状点をそれぞれ投影する手段と、
前記３つの座標平面それぞれについて、該座標平面に投影された前記第１の形状点に対応する投影点についての第１の凸包、又は、該座標平面に投影された前記第２の形状点に対応する投影点についての第２の凸包、又は、前記第１の凸包及び前記第２の凸包の双方を求める手段と、
前記３つの座標平面それぞれについて、前記第１の凸包と前記第２の形状点に対応する投影点との重なり具合、又は、前記第１の形状点に対応する投影点と前記第２の凸包との重なり具合、又は、前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定する手段と、
を備えるロボット動作規制装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作規制方法及び装置に関する。
【背景技術】
【０００２】
ロボットは本来自由な動作が求められるが、その作業空間には障害物が存在したり、その作業空間内での作業に規制(restrict)を受けている場合が多い。このため、従来から、ロボットの所望の動作を規制するか否かを判定する方法が以下のとおり幾つか提案されている。
【０００３】
特許文献１では、ロボットの手首部の関節を中心にして把持物体を回転したときにできる包絡球（３次元空間）を求め、該包絡球が移動する際の障害物との接触の有無を判定することにより、該包絡球が該障害物と接触しない経路を求めることが開示されている。
【０００４】
特許文献２では、ロボットの一部を内包する３次元空間（球など）が少なくとも２箇所以上定義され、この定義された３次元空間のいずれか１つの軌跡計算上での予測位置の一部が仮想安全柵（ロボットの動作禁止空間の境界）に接する場合に、その３次元空間を含むロボットの移動を停止する制御を行うことが開示されている。
【０００５】
特許文献３では、３次元計測装置における３次元ＣＡＤデータに基づくオフラインティーチングにより作成された計測ヘッドの移動経路の検証として、３次元ＣＡＤデータに基づき計測ヘッドの形状とその計測対象のワークの形状とをそれぞれ凸多面体のグループとして近似した後、それぞれの凸多面体の構成面を２次元平面に投影して干渉の有無を判定することが開示されている。また、干渉の有無の判定方法としては、ワークに固定した３次元座標系と計測ヘッドに固定した３次元座標系とを共に使用して双方の３次元座標系の軸方向に投影を行うことで、干渉の有無をより正確に判定することが開示されている。
【０００６】
特許文献４では、ＮＣ工作機械における干渉チェックとして、ＮＣ工作機械の動作し得る部位及びその部位と干渉し得る部位について、ＮＣ情報に基づいた部位毎の３次元座標系における概略形状データ（曲面体）と詳細形状データ（曲面体のグループ）とを登録しておき、その概略形状データを用いて干渉の可能性があると判定された時にのみ、その詳細形状データを用いて干渉の有無を判定することが開示されている。また、干渉の有無の判定方法としては、概略形状データ又は詳細形状データを所定の３次元座標系に変換した後、Ｘ−Ｙ平面、Ｙ−Ｚ平面、及びＺ−Ｘ平面における投影データを生成し、Ｘ−Ｙ平面、Ｙ−Ｚ平面、及びＺ−Ｘ平面のすべてにおいて投影データの重なりがあるか否かを判定することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−１０８３８３号公報
【特許文献２】特許第３９７５９５９号公報
【特許文献３】特開昭６４−４８１０７号公報
【特許文献４】特開平５−１２７７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１、２の方法では、「ロボット」及び「ロボットの動作を規制する物体（障害物、仮想安全柵など）」を、球や直方体などの比較的簡単な３次元空間として定義している。このため、その定義された３次元空間が「ロボット」及び「ロボットの動作を規制する物体」の実際の形状にそぐわない場合が多いという問題がある。
【０００９】
特許文献３、４の方法では、「ロボット」及び「ロボットの動作を規制する物体」を、３次元の設計情報（ＣＡＤ情報、ＮＣ情報）に基づいて多面体又は曲面体のグループとして定義（近似）している。このため、それらの方法を考案した目的である干渉の有無をきめ細やかに判定するためには、数多くの多面体又は曲面体を定義して「ロボット」及び「ロボットの動作を規制する物体」の実際の形状に近づけなければならず、膨大な作業量や計算量が必要になるという問題がある。また、多面体又は曲面体のデータを３次元座標系における３つの２次元平面それぞれに投影する計算量についても問題である。
【００１０】
要するに、特許文献１乃至４のいずれにおいても、３次元空間同士の重なりの有無の判定の前提としての定義（モデル化）自体に問題があり、また、３次元空間同士の重なりの有無の判定に要する計算量についても問題があった。
【００１１】
本発明は、このような課題を解決するためになされたもので、その目的は、ロボットとロボット動作を規制するべき対象物であるロボット動作規制対象物とが互いに干渉しないようにロボットの動作を規制するか否かを判定する処理を簡易に且つその計算量を低減して実現することにある。
【課題を解決するための手段】
【００１２】
前記の課題を解決するために、本発明のある形態に係るロボットの動作規制方法は、ロボットと該ロボットの動作を規制するべき対象物であるロボット動作規制対象物とが互いに干渉しないように該ロボットの動作を規制する方法であって、前記ロボットの形状を特定する１以上の第１の形状点及び前記ロボット動作規制対象物の形状を特定する１以上の第２の形状点を定義し、３次元座標系の３つの座標軸によって定義される３つの座標平面に前記第１の形状点及び前記第２の形状点をそれぞれ投影し、前記３つの座標平面それぞれについて、該座標平面に投影された前記第１の形状点に対応する投影点についての第１の凸包、又は、該座標平面に投影された前記第２の形状点に対応する投影点についての第２の凸包、又は、前記第１の凸包及び前記第２の凸包の双方を求め、前記３つの座標平面それぞれについて、前記第１の凸包と前記第２の形状点に対応する投影点との重なり具合、前記第１の形状点に対応する投影点と前記第２の凸包との重なり具合、又は、前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定する、ものである。
【００１３】
ここで、「凸包」とは、平面上のある点のグループの中で最も外側にある点同士を直線で結んでできる領域（任意の２点の線分をすべて含むグループ）のことである。また、「ロボット動作規制対象物」とは、ロボットの進入が物理的に不可能な障害物（作業者、他のロボット、他の機械や設備など）やロボットの外部への進出が禁止されている空間の境界のことなどを指している。
【００１４】
前記方法によれば、特許文献１乃至４のようにロボット及びロボット動作規制対象物の３次元形状をそれぞれ球体又は直方体などの３次元空間若しくは多面体又は球面体の集合として定義するのではなく、ロボット及びロボット動作規制対象物それぞれの形状を特定する第１の形状点及び第２の形状点として定義している。したがって、ロボット及びロボット動作規制対象物を直感的に且つ簡易に定義することが可能となる。
【００１５】
また、前記方法によれば、特許文献３〜４のように３つの座標平面に投影する前に３次元空間上での多面体又は球面体の凸包を求めるのではなく、３つの座標平面にそれぞれ投影された第１の形状点及び第２の形状点の投影点の集合から凸包（第１の凸包、第２の凸包）を求めている。したがって、凸包を求めるための計算量を低減することができる。
【００１６】
さらに、前記方法によれば、特許文献３〜４のように多面体又は球面体を構成する面若しくはすべての座標データを３つの座標平面にそれぞれ投影するのではなく、３次元座標系における第１の形状点及び第２の形状点を３つの座標平面にそれぞれ投影している。したがって、３次元座標系から３つの２次元座標系への座標変換に要する計算量を低減することができる。
【００１７】
以上のとおり、前記方法によれば、ロボットとロボット動作規制対象物とが互いに干渉しないようにロボットの動作を規制するか否かを判定する処理を簡易に且つその計算量を低減して実現することができる。
【００１８】
前記ロボットの動作規制方法であって、前記第１の形状点及び前記第２の形状点を定義することは、前記第１の形状点を複数のグループに分類すること、又は、前記第２の形状点を複数のグループに分類すること、又は、前記第１の形状点及び前記第２の形状点をそれぞれ複数のグループに分類することを含むとしてもよい。
【００１９】
前記方法によれば、ロボット及びロボット動作規制対象物の各グループの実際の形状に則した第１の凸包及び第２の凸包を規定することができ、ロボット及びロボット動作規制対象物の形状のモデル化の精度が向上し、ひいてはロボットの動作を規制するか否かの判定の精度を向上することができる。
【００２０】
前記ロボットの動作規制方法であって、前記第２の凸包は前記ロボットの進入を禁止する空間である進入禁止空間の形状を特定する前記第２の形状点についての凸包を含み、前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定することは、前記３つの座標平面のすべてについて、前記第１の凸包と前記進入禁止空間を表現した前記第２の凸包との重なりが有る場合、前記ロボットが前記進入禁止空間に進入していると判定し、そうでない場合、前記ロボットが前記進入禁止空間に進入していないことを判定することを含む、としてもよい。
【００２１】
前記方法によれば、ロボットが進入禁止空間に進入しているか否かの判定に要する処理を簡易に且つその計算量を低減して実現できる。
【００２２】
前記ロボットの動作規制方法であって、前記第２の凸包は前記ロボットの外部への進出を禁止する空間である進出禁止空間の形状を特定する前記第２の形状点についての凸包を含み、前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定することは、前記３つの座標平面のいずれかについて、前記第１の凸包と前記進出禁止空間を表現した前記第２の凸包から前記第１の凸包の一部がはみ出している場合、前記ロボットが前記進出禁止空間の外部に進出していると判定し、そうでない場合、前記ロボットが前記進出禁止空間の外部に進出していないことを判定することを含む、としてもよい。
【００２３】
前記方法によれば、ロボットが進出禁止空間からその外部に進出しているか否かの判定に要する処理を簡易に且つその計算量を低減して実現できる。
【００２４】
前記ロボットの動作規制方法であって、前記第２の凸包は前記進出禁止空間の形状を特定する前記第２の形状点についての凸包を含み、前記第１の形状点に対応する投影点と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定することは、前記３つの座標平面のすべてについて、前記第１の形状点に対応する投影点のすべてが前記進出禁止空間を表現した前記第２の凸包に含まれる場合、前記ロボットが前記進出禁止空間の外部へ進出していないと判定し、そうでない場合、前記ロボットが前記進出禁止空間の外部へ進出していることを判定することを含む、としてもよい。
【００２５】
前記方法によれば、ロボットが進出禁止空間からその外部に進出しているか否かの判定に要する処理を簡易に且つその計算量を低減して実現できる。
【００２６】
前記ロボットの動作規制方法であって、前記第２の凸包は、前記ロボットの進入を禁止する空間である進入禁止空間の形状を特定する前記第２の形状点についての凸包と、前記ロボットの外部への進出を禁止する空間である進出禁止空間の形状を特定する前記第２の形状点についての凸包とを含み、前記第２の凸包を求めることは、前記進入禁止空間を表現した前記第２の形状点についての凸包と前記進出禁止空間を表現した前記第２の形状点についての凸包とを重ね合わせて凹領域を特定することを含む、としてもよい。
【００２７】
前記方法によれば、ロボット及びロボット動作規制対象物の実際の形状に則するように、凸領域（第１の凸包、第２の凸包）のみならず凹領域をも定義することができ、ロボット及びロボット動作規制対象物の形状のモデル化の精度が向上し、ひいてはロボットの動作を規制するか否かの判定の精度を向上することができる。
【００２８】
前記ロボットの動作規制方法であって、前記３つの座標平面のいずれにも平行でない前記ロボットの進行方向に平行な第４の平面に前記第１の形状点及び前記第２の形状点をそれぞれ投影することと、前記第４の平面に投影された前記第１の形状点に対応する投影点についての第１の凸包、及び、前記第４の平面に投影された前記第２の形状点に対応する投影点についての第２の凸包を求めることと、をさらに含み、前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定することは、前記第４の平面における前記第１の凸包と前記第２の凸包との重なり具合を判定すること、をさらに含む、としてもよい。
【００２９】
前記方法によれば、実際にはロボットとロボット動作規制対象物とが互いに干渉していないにも関わらず、ロボットとロボット動作規制対象物とが互いに干渉している（第１の凸包と第２の凸包とが重なっている）と判定されることを回避することができる。
【００３０】
前記の課題を解決するために、本発明の他の形態に係るロボット動作規制装置は、ロボットと該ロボットの動作を規制するべき対象物であるロボット動作規制対象物とが互いに干渉しないように該ロボットの動作を規制する装置であって、前記ロボットの形状を特定する１以上の第１の形状点及び前記ロボット動作規制対象物の形状を特定する１以上の第２の形状点を定義する手段と、３次元座標系の３つの座標軸によって定義される３つの座標平面に前記第１の形状点及び前記第２の形状点をそれぞれ投影する手段と、前記３つの座標平面それぞれについて、該座標平面に投影された前記第１の形状点に対応する投影点についての第１の凸包、又は、該座標平面に投影された前記第２の形状点に対応する投影点についての第２の凸包、又は、前記第１の凸包及び前記第２の凸包の双方を求める手段と、前記３つの座標平面それぞれについて、前記第１の凸包と前記第２の形状点に対応する投影点との重なり具合、又は、前記第１の形状点に対応する投影点と前記第２の凸包との重なり具合、又は、前記第１の凸包と前記第２の凸包との重なり具合に基づいて前記ロボットの動作を規制するか否かを判定する手段と、を備えるものである。
【発明の効果】
【００３１】
本発明によれば、ロボットとロボット動作規制対象物とが互いに干渉しないようにロボットの動作を規制するか否かを判定する処理を簡易に且つその計算量を低減して実現することができる。
【図面の簡単な説明】
【００３２】
【図１】図１は本発明の実施の形態１におけるロボット制御システムの構成例を示すブロック図である。
【図２Ａ】図２Ａは図１に示すロボット動作規制装置の動作例を示すフローチャートである。
【図２Ｂ】図２Ｂは図１に示すロボット動作規制装置のその他の動作例を示すフローチャートである。
【図３】図３は図２Ａ、図２Ｂに示した進入禁止空間に進入しているか否かについての判定処理（ステップＳ２０３）の詳細な流れを示すフローチャートである。
【図４】図４は図２Ａ、図２Ｂに示した進出禁止空間からその外部に進出しているか否かについての判定処理（ステップＳ２０４）の詳細な流れを示すフローチャートである。
【図５】図５は本発明の実施の形態１における形状点の定義の一例とグループ分けの一例とを示す図である。
【図６Ａ】図６Ａは本発明の実施の形態１におけるグループ分けをしない場合に不適切な凸包となる一例を示す図である。
【図６Ｂ】図６Ｂは図６Ａに示す一例をグループ分けした場合の凸包の一例を示す図である。
【図７Ａ】図７Ａは本発明の実施の形態１における進入禁止空間にロボットが進入する状態を示す図である。
【図７Ｂ】図７Ｂは本発明の実施の形態１における進出禁止空間の外部へロボットが進出する状態を示す図である。
【図８】図８は本発明の実施の形態２における凹領域の定義の一例を示す図である。
【図９Ａ】図９ＡはＹ−Ｚ平面側からみた形状点の定義例を示した図であり、
【図９Ｂ】図９ＢはＺ−Ｘ平面側からみた形状点の定義例を示した図であり、
【図９Ｃ】図９ＣはＸ−Ｙ平面側からみた形状点の定義例を示した図である。
【図１０Ａ】図１０Ａは図９Ａを表現したＹ−Ｚ平面への形状点の投影図を示した図である。
【図１０Ｂ】図１０Ｂは図９Ｂを表現したＺ−Ｘ平面への形状点の投影図を示した図である。
【図１０Ｃ】図１０Ｃは図９Ｃを表現したＸ−Ｙ平面への形状点の投影図を示した図である。
【図１１】図１１は図１０Ａ乃至図１０Ｃにおける凸包同士の包含関係を説明するための図である。
【図１２】図１２はツールが進入禁止空間に実際に進入していないにも関わらず進入していると判定される、ツールと進入禁止空間との３次元空間上の位置関係の一例を示す図である。
【図１３Ａ】図１３Ａは図１２に示すツール及び進入禁止空間の形状をそれぞれ特定する形状点をＹ−Ｚ平面に投影した図である。
【図１３Ｂ】図１３Ｂは図１２に示すツール及び進入禁止空間の形状をそれぞれ特定する形状点をＺ−Ｘ平面に投影した図である。
【図１３Ｃ】図１３Ｃは図１２に示すツール及び進入禁止空間の形状をそれぞれ特定する形状点をＸ−Ｙ平面に投影した図である。
【図１４】図１４はＹ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面以外の別の平面に図１２に示すツール及び進入禁止空間の形状をそれぞれ特定する形状点を投影した図である。
【発明を実施するための形態】
【００３３】
以下、本発明の好ましい実施の形態を、図面を参照しながら説明する。なお、以下ではすべての図を通じて同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【００３４】
（実施の形態１）
[システム構成例]
図１は本発明の実施の形態１におけるロボット制御システムの構成例を示すブロック図である。図１に示すロボット制御システムは、ロボット１００と、ロボット制御装置２００と、ロボット動作規制装置３００とから成る。
【００３５】
ロボット１００は、所定の基端から先端に向けて順に設けられた複数のリンク（アーム部材）及び関節を備え、該複数の関節がそれぞれ回転軸を有し、且つ各回転軸の周りに次の関節及び該次の関節に至るまでのリンクを回転させるように構成されている。言い換えると、基端から先端に向けて順に設けられたリンクは、互いに相対回転が可能となるように連結されている。ここで、複数の関節によって互いに連結されたリンクをロボットアームと定義する。なお、ロボットアームの先端部位にはワーク（加工対象物）を保持するツールが着脱可能となるよう取り付けられる。また、ロボットアームを構成する各関節にはそれぞれサーボモータ及び位置検出器が設けられている。各サーボモータを駆動することにより各関節においてそれぞれ許容される回転軸周りの回転が行われる。また、各サーボモータを駆動することにより、各位置検出器によって各サーボモータの回転軸周りの回転位置の検出が行われる。
【００３６】
ロボット制御装置２００は、ロボット１００の各位置検出器により検出された位置情報（各サーボモータの回転軸周りの回転位置）に基づいてロボット１００の各サーボモータの駆動を制御するよう構成されている。具体的には、複数のリンクの各回転軸の位置サーボ制御によってツール及びワークを所望の位置に所望の姿勢で停止させたり、複数のリンクの各回転軸の速度サーボ制御によってツール及びワークを所望の経路に沿って所望の姿勢で、かつ所望の速度で移動させるように構成されている。ロボット制御装置２００は、インバータなどの電源回路と、ＣＰＵやＤＳＰなどの制御器と、及びＲＡＭやＲＯＭなどの記憶器とを備えた情報処理装置として実現されている。なお、制御器は、互いに協働して分散制御する複数の制御器によって構成されてもよい。
【００３７】
ロボット動作規制装置３００は、ロボット制御装置２００によって制御されているロボット１００の所望の動作を規制するか否かを制御するよう構成されている。例えば、ロボット１００の作業空間には、作業者、他のロボット、ロボット以外の機械／設備など、ロボット１００の進入が物理的に不可能な障害物が数多く存在している。この場合、ロボット動作規制装置３００は、ロボット１００の各位置検出器からの位置情報に基づいて、この障害物を表現した進入禁止空間内にロボット１００が進入しないようにロボット制御装置２００によるロボット１００の所望の動作に対して非常停止や電源断などの規制をかけている。あるいは、ロボット１００の作業空間内に限ってロボット１００の動作が許可されている場合、言い換えると、ロボット１００が作業空間からその外部へと進出することが禁止される場合とする。この場合、ロボット動作規制装置３００は、ロボット１００の各位置検出器からの位置情報に基づいて、その作業空間内を表現した進出禁止空間からその外部へロボット１００が進出しないようにロボット制御装置２００によるロボット１００の所望の動作に対して非常停止や電源断などの規制をかけている。
【００３８】
ロボット動作規制対象物４００は、前記のとおり、ロボット１００の進入が物理的に不可能な障害物（作業者、他のロボット、他の機械や設備など）やロボット１００の外部への進出が禁止されている空間の境界のことを指している。つまり、ロボット動作規制装置３００は、ロボット１００とロボット動作規制対象物４００とが互いに干渉しないようにロボット１００の動作に規制をかけるものである。ロボット動作規制装置３００は、ＣＰＵやＤＳＰなどの制御器と、ＲＯＭやＲＡＭなどの記憶器とを備えた情報処理装置として実現される。なお、必要に応じて、キーボードやマウスやタッチパネルなどの入力装置及びディスプレイなどの出力装置として、例えばパーソナルコンピュータがロボット動作規制装置３００に接続される。なお、図１に示すブロック図では、ロボット動作規制装置３００とロボット制御装置２００とは別々に構成されているが、ロボット動作規制装置３００の機能が取り組まれるようにロボット制御装置２００が構成されてもよい。
【００３９】
[ロボット動作規制装置の動作例]
図２Ａはロボット動作規制装置３００の動作例を示すフローチャートである。図２Ｂはロボット動作規制装置３００のその他の動作例を示すフローチャートである。なお、図２Ａと図２Ｂとの相違点は、ステップＳ２００とステップＳ２０１との間にステップＳ２０５を付加するか否かの点のみである。以下では、図５、図６Ａ、図６Ｂ、図７Ａ、図７Ｂ、図８を参照しながら、図２Ｂに示すフローチャートについて説明する。
【００４０】
なお、図５は、本発明における形状点の定義の一例とグループ分けの一例とを示す図である。図６Ａは、本発明におけるグループ分けをしない場合に不適切な凸包となる一例を示す図である。図６Ｂは、図６Ａに示す一例をグループ分けした場合の凸包の一例を示す図である。図７Ａは、本発明における進入禁止空間にロボットが進入する状態を示す図である。図７Ｂは、本発明における進出禁止空間の外部へロボットが進出する状態を示す図である。図８は、本発明における凹領域の定義の一例を示す図である。
【００４１】
ここで、「凸包」とは、平面グラフ上のある点のグループの中で最も外側にある点同士を直線で結んでできる領域（任意の２点の線分をすべて含むグループ）のことである。
【００４２】
まず、ロボット１００の形状を特定する第１の形状点及びロボット動作規制対象物４００の形状を特定する第２の形状点をそれぞれ１点以上定義する（ステップＳ２００）。この際、後述のステップＳ２０２のように求める凸包の精度を高めるために、第１の形状点及び／又は第２の形状点を複数のグループに分類するとともに、複数のグループそれぞれに１点以上の第１の形状点又は第２の形状点が含まれるように第１の形状点及び／又は第２の形状点をグループ分けすることが好ましい（ステップＳ２０５）。
【００４３】
例えば、図５に示す例では、ロボット１００の形状を特定する第１の形状点のグループ分けとして、ツール１０３の形状を特定する第１の形状点Ｐ０のグループＧ０と、アーム部１０１の形状を特定する第１の形状点Ｐ１のグループＧ１と、アーム部１０２の形状を特定する第１の形状点Ｐ２のグループＧ２との分類が行われる。なお、ロボット１００の基台部分については、３次元空間上に固定されておりロボット動作規制対象物４００と干渉することはないので第１の形状点を定義する必要はない。また、ロボット動作規制対象物４００の形状を特定する第２の形状点のグループ分けとして、禁止空間Ａ１（図５の場合、進入禁止空間）の形状を特定する第２の形状点Ｐ３を含むグループＧ３と、禁止空間Ａ１とは異なる座標空間にある禁止空間Ａ２（図５の場合、進入禁止空間）の形状を特定する第２の形状点Ｐ４を含むグループＧ４との分類が行われる。
【００４４】
つぎに、３次元座標系の各座標軸Ｘ，Ｙ，Ｚを法線とする３つの座標平面（Ｘ−Ｙ，Ｙ−Ｚ，Ｚ−Ｘ）に第１の形状点及び第２の形状点をそれぞれ投影する（ステップＳ２０１）。そして、３つの座標平面（Ｘ−Ｙ，Ｙ−Ｚ，Ｚ−Ｘ）それぞれにおいて投影された第１の形状点に対応する投影点についての第１の凸包、３つの座標平面それぞれにおいて投影された第２の形状点に対応する投影点についての第２の凸包、又は第１の凸包及び第２の凸包の双方を求める（ステップＳ２０２）。
【００４５】
ここで、図６Ａ、図６Ｂを参照しながら、第１の凸包、第２の凸包、又は第１の凸包及び第２の凸包の双方を求める前に、第１の形状点、第２の形状点、又は第１の形状点及び第２の形状点の双方をグループ分けしておく方が好ましい理由について説明する。図６Ａ、図６Ｂに示す例では、ロボット１００又はロボット動作規制対象物４００がＬ字型形状の場合であって、そのＬ字型形状を特定するために計７つの形状点（Ｐｘ，Ｐｙ，Ｐｚ，Ｐｗ，Ｐｖ，Ｐｎ，Ｐｍ）が定義されている場合である。また、図６Ａ、図６Ｂに示される計７つの形状点（Ｐｘ，Ｐｙ，Ｐｚ，Ｐｗ，Ｐｖ，Ｐｎ，Ｐｍ）は、ある座標平面にロボット１００又はロボット動作規制対象物４００の形状点を投影した場合の該ある座標平面における該形状点に対応する投影点を意味している。したがって、以下の図６Ａ、図６Ｂを用いた説明の中で使用する形状点はその投影点を意味するものとする。
【００４６】
図６Ａの例ではグループ分けをせずに１つのグループＧｎに７つの形状点（Ｐｘ，Ｐｙ，Ｐｚ，Ｐｗ，Ｐｖ，Ｐｎ，Ｐｍ）が含まれており、そのグループＧｎの外周（座標平面を定義する２つの座標軸のいずれか一方で最大値又は最小値を持つ点のグループ）にある６つの形状点（Ｐｘ，Ｐｙ，Ｐｗ，Ｐｖ，Ｐｎ，Ｐｍ）を互いに直線で結んで凸包が形成されている。図６Ａに示す凸包は、形状点Ｐｚを考慮に入れていないので、ロボット１００又はロボット動作規制対象物４００のＬ字型形状よりも大きな領域を持っている。
【００４７】
一方、図６Ｂの例では７つの形状点（Ｐｘ，Ｐｙ，Ｐｚ，Ｐｗ，Ｐｖ，Ｐｎ，Ｐｍ）が２つのグループＧｎ１，Ｇｎ２に分類されている。具体的には、グループＧｎ１には５つの形状点（Ｐｘ，Ｐｙ，Ｐｚ，Ｐｎ，Ｐｍ）が含まれており、グループＧｎ２には４つの形状点（Ｐｚ，Ｐｗ，Ｐｖ，Ｐｎ）が含まれている。なお、２つの形状点（Ｐｚ，Ｐｎ）は２つのグループＧｎ１，Ｇｎ２の両方に属しているが、このように１つの形状点が複数のグループに属していても構わない。グループＧｎ１の外周にある５の形状点（Ｐｘ，Ｐｙ，Ｐｚ，Ｐｎ，Ｐｍ）を互いに直線で結んで凸包が形成され、グループＧｎ２の外周にある４つの形状点（Ｐｚ，Ｐｗ，Ｐｖ，Ｐｎ）を互いに直線で結んで凸包が形成されている。これらの凸包を合成することによりロボット１００又はロボット動作規制対象物４００のＬ字型形状をより正確に表現することができる。したがって、凸包を求める前に形状点をグループ分けしておく方が好ましい。
【００４８】
つぎに、３つの座標平面（Ｘ−Ｙ平面，Ｙ−Ｚ平面，Ｚ−Ｘ平面）それぞれについて、第１の凸包と第２の凸包との重なり具合に基づいてロボット１００が進入禁止空間に進入しているか否かを判定する（ステップＳ２０３）。例えば、図７Ａに示すように、ロボット１００を表現した第１の凸包と進入禁止空間を表現した第２の凸包との重なりが生じている場合、ロボット１００が進入禁止空間に進入していると判定し、そうでない場合、ロボット１００が進入禁止空間に進入していないことを判定することができる。
【００４９】
つぎに、３つの座標平面（Ｘ−Ｙ平面，Ｙ−Ｚ平面，Ｚ−Ｘ平面）それぞれについて、第１の凸包と第２の凸包との重なり具合に基づいて進出禁止空間の外部へロボット１００が進出しているか否かを判定する（ステップＳ２０４）。例えば、図７Ｂに示すように、第２の凸包から第１の凸包の一部がはみ出している場合、ロボット１００が進出禁止空間の外部に進出していると判定し、そうでない場合、ロボット１００が進出禁止空間の外部に進出していないことを判定する。
【００５０】
[進入判定処理]
図３は、図２Ａ、図２Ｂに示した進入禁止空間に進入しているか否かについての判定処理（ステップＳ２０３）の詳細な流れを示すフローチャートである。なお、図３に示すフローチャートでは、説明の簡略化のために、１つの進入禁止空間のみが定義されている場合とする。
【００５１】
まず、ステップＳ２０５においてグループ分けをしたロボット１００の形状を特定する第１の形状点のグループのうちの一つを選択する（ステップＳ３０１）。
【００５２】
つぎに、Ｘ−Ｙ平面において、ステップＳ３０１において選択した第１の形状点のグループを表現した第１の凸包と進入禁止空間を表現した第２の凸包との重なり具合を判定する（ステップＳ３０２）。なお、第１の形状点のグループを表現した第１の凸包と進入禁止空間を表現した第２の凸包との重なりは、互いの一部が重なっている場合のみならず、第１の凸包及び第２の凸包のうち一方が他方にすべて含まれている場合（部分集合）も含む。そして、Ｙ−Ｚ平面及びＺ−Ｘ平面についても同様に行われる（ステップＳ３０４、Ｓ３０６）。なお、Ｘ−Ｙ平面、Ｙ−Ｚ平面、及びＺ−Ｘ平面の順に判定を行っているが、これらの順番は入れ替わってもよい。
【００５３】
Ｘ−Ｙ平面、Ｙ−Ｚ平面、及びＺ−Ｘ平面の判定（ステップＳ３０２、Ｓ３０４、Ｓ３０６）のいずれかにおいて、ステップＳ３０１において選択した第１の形状点のグループを表現した第１の凸包と進入禁止空間を表現した第２の凸包との重なりが無いと判定すれば（ステップＳ３０３、ステップＳ３０５、又はステップＳ３０７：ＮＯ）、進入禁止空間にロボット１００が進入していないことを判定する（ステップＳ３０９）。一方、Ｘ−Ｙ平面、Ｙ−Ｚ平面、及びＺ−Ｘ平面の判定（ステップＳ３０２、Ｓ３０４、Ｓ３０６）のすべてにおいて、ステップＳ３０１において選択した第１の形状点のグループを表現した第１の凸包と進入禁止空間を表現した第２の凸包との重なりが有ると判定すれば（ステップＳ３０３、ステップＳ３０５、及びステップＳ３０７：ＹＥＳ）、進入禁止空間にロボット１００が進入していることを判定する（ステップＳ３０８）。
【００５４】
以上のステップＳ３０１〜Ｓ３０９は、すべての第１の形状点のグループについて進入禁止空間に進入しているか否かの判定が済むまで（ステップＳ３１０：ＹＥＳ）繰り返し実行される。
【００５５】
[進出判定処理]
図４は、図２Ａ、図２Ｂに示した進出禁止空間からその外部に進出しているか否かについての判定処理（Ｓ２０４）の詳細な流れを示すフローチャートである。
【００５６】
図４に示すフローチャートでは、説明の簡略化のために、１つの進出禁止空間のみが定義されている場合とする。さらに、進出禁止空間は凸領域であるという前提で、ロボット１００を表現した第１の形状点の個数が比較的少ない場合には、第１の凸包と第２の凸包との包含関係ではなく、後述のとおり第１の形状点に対応する投影点と第２の凸包との包含関係に基づいてロボット１００の動作を規制するか否かを判定することが可能である。この結果、第１の凸包を求めなくて済むので、計算量を抑制することができる。したがって、ステップＳ２０２においては進出禁止空間を表現した第２の凸包のみが求められている場合とする。
【００５７】
まず、ステップＳ２０５においてグループ分けをしたロボット１００の形状を特定する第１の形状点のグループのうちの一つを選択する（ステップＳ４００）  。
【００５８】
つぎに、Ｘ−Ｙ平面において、ステップＳ４００において選択した第１の形状点に対応する投影点のグループ（凸包ではなく点の集合）と進出禁止空間を表現した第２の凸包との重なり具合として、選択したグループに属する第１の形状点に対応する投影点のすべてが第２の凸包の内部に含まれるか否かを判定する（ステップＳ４０１）。Ｙ−Ｚ平面及びＺ−Ｘ平面についても同様の判定が行われる（ステップＳ４０３、Ｓ４０５）。なお、Ｘ−Ｙ平面、Ｙ−Ｚ平面、及びＺ−Ｘ平面の順に判定を行っているが、これらの順番は入れ替わってもよい。
【００５９】
ここで、Ｘ−Ｙ平面、Ｙ−Ｚ平面、及びＺ−Ｘ平面の判定（ステップＳ４０１、Ｓ４０３、Ｓ４０５）のいずれかにおいて、ステップＳ４００において選択したグループに属する第１の形状点に対応する投影点のすべてが進出禁止空間を表現した第２の凸包の内部に含まれていないと判定されれば（ステップＳ４０２、ステップＳ４０４、又はステップＳ４０６：ＮＯ）、ロボット１００が進出禁止空間からその外部に進出していることを判定する（ステップＳ４０８）。一方、Ｘ−Ｙ平面、Ｙ−Ｚ平面、及びＺ−Ｘ平面の判定（ステップＳ４０１、Ｓ４０３、Ｓ４０５）のすべてにおいて、ステップＳ４００において選択したグループに属する第１の形状点に対応する投影点のすべてが進出禁止空間を表現した第２の凸包の内部に含まれていると判定されれば（ステップＳ４０２、ステップＳ４０４、及びステップＳ４０６：ＹＥＳ）、ロボット１００が進出禁止空間からその外部に進出していないことを判定する（ステップＳ４０７）。
【００６０】
以上のステップＳ４００〜Ｓ４０８は、すべての第１の形状点のグループについて進出禁止空間からその外部に進出しているか否かの判定が済むまで（ステップＳ４０９：ＹＥＳ）繰り返し実行される。
【００６１】
[ロボット動作規制装置の具体的な動作例]
図５、図９Ａ、図９Ｂ、図９Ｃ、図１０Ａ、図１０Ｂ、図１０Ｃ、図１１を参照しながら、ロボット動作規制装置３００の具体的な動作例として、ロボットアームの先端部位にツールが取り付けられたロボット１００が２つの進入禁止空間Ａ１，Ａ２に進入しているか否かを判定する場合を例に挙げて説明する。
【００６２】
なお、図９Ａは、Ｙ−Ｚ平面側からみた形状点の定義例を示した図であり、図９Ｂは、Ｚ−Ｘ平面側からみた形状点の定義例を示した図であり、図９Ｃは、Ｘ−Ｙ平面側からみた形状点の定義例を示した図である。図１０Ａは、図９Ａを表現したＹ−Ｚ平面への形状点の投影図を示した図であり、図１０Ｂは、図９Ｂを表現したＺ−Ｘ平面への形状点の投影図を示した図であり、図１０Ｃは、図９Ｃを表現したＸ−Ｙ平面への形状点の投影図を示した図である。そして、図１１は、図１０Ａ乃至図１０Ｃにおける凸包同士の包含関係を説明するための図である。
【００６３】
まず、図５に示したように、ロボット１００の形状を特定する第１の形状点（Ｐ０，Ｐ１，Ｐ２）及び２つの進入禁止空間Ａ１，Ａ２をそれぞれ特定する第２の形状点（Ｐ３，Ｐ４）をそれぞれ定義する。また、形状点のグループ分けとして、ツール１０３の形状を特定する第１の形状点Ｐ０のグループＧ０と、アーム部１０１の形状を特定する第１の形状点Ｐ１のグループＧ１と、アーム部１０２の形状を特定する第１の形状点Ｐ２のグループＧ２と、進入禁止空間Ａ１の形状を特定する第２の形状点Ｐ３を含むグループＧ３と、進入禁止空間Ａ２の形状を特定する第２の形状点Ｐ４を含むグループＧ４との分類が行われる。図９Ａ乃至図９Ｃには、各グループ（Ｇ０〜Ｇ４）に含まれる形状点（Ｐ０〜Ｐ４）をＹ−Ｚ平面側、Ｚ−Ｘ平面側、及びＸ−Ｙ平面側から見たときの状態が表されている。
【００６４】
つぎに、図１０Ａ乃至図１０Ｃに示されるように、各グループ（Ｇ０〜Ｇ４）に含まれる形状点（Ｐ０〜Ｐ４）をＹ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面それぞれに投影する。そして、Ｙ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面それぞれにおいて、グループ（Ｇ０〜Ｇ４）ごとに最も外側にある投影点同士を直線で結んで凸包を求める。
【００６５】
つぎに、Ｙ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面それぞれにおいて、ロボット１００に関するアーム部１０１，１０２及びツール１０３をそれぞれ表した３つの第１の凸包（Ｘ１，Ｘ２，Ｘ３）と、ロボット動作規制対象物４００に関する進入禁止空間Ａ１，Ａ２をそれぞれ表した２つの第２の凸包（Ｙ１，Ｙ２）と、の包含関係をすべて求める。例えば、図１０Ａに示すＹ−Ｚ平面において、アーム部１０１を表現した第１の凸包Ｘ１は、進入禁止空間Ａ１，Ａ２をそれぞれ表す第２の凸包Ｙ１，Ｙ２と重なっておらず、アーム部１０２を表現した第１の凸包Ｘ２は、進入禁止空間Ａ１，Ａ２をそれぞれ表す第２の凸包Ｙ１，Ｙ２と重なっており、ツール１０３を表現した第１の凸包Ｘ３は進入禁止空間Ａ１を表現した第２の凸包Ｙ１と重なっているが進入禁止空間Ａ２を表現した第２の凸包Ｙ２とは重なっていない。同様に、図１０Ｂに示すＺ−Ｘ平面、図１０Ｃに示すＸ−Ｙ平面についても第１の凸包（Ｘ１，Ｘ２，Ｘ３）と第２の凸包（Ｙ１，Ｙ２）との包含関係を判定する。図１１には、これらの包含関係がまとめられている。なお、図１１において、丸印は「凸包同士の重なりが無い」状態を表しており、×印は「凸包同士の重なりが有る」状態を表している。
【００６６】
つぎに、ロボット１００に関する３つの第１の凸包のうちいずれか一つと、ロボット動作規制対象物４００に関する２つの第２の凸包のうちいずれか一つとの組み合わせの中で、Ｙ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面のすべてにおいて「凸包同士の重なりが有る」と判定された組み合わせの有無を調べる。このような組み合わせが有る場合、ロボット１００（ここでは、ロボットアーム）が進入禁止空間に進入していると判定し、そうでない場合、ロボット１００が進入禁止空間に進入していないことを判定する。
【００６７】
図１１の例では、アーム部１０１，１０２をそれぞれ表す第１の凸包Ｘ１，Ｘ２は、Ｙ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面のすべてにおいて、進入禁止空間Ａ１，Ａ２をそれぞれ表す第２の凸包Ｙ１，Ｙ２と重なってはいない。したがって、アーム部１０１，１０２は進入禁止空間Ａ１，Ａ２のいずれにも進入していないことを判定する。一方、ツール１０３を表現した第１の凸包Ｘ３は、Ｙ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面のすべてにおいて、進入禁止空間Ａ１を表現した第２の凸包Ｙ１と重なっており、且つ進入禁止空間Ａ２を表現した第２の凸包Ｙ２とは重なっていない。したがって、ツール１０３は進入禁止空間Ａ２には進入していないが進入禁止空間Ａ１には進入していることを判定する。
【００６８】
[変形例]
ロボット１００が進出禁止空間からその外部に進出しているか否かの判定処理と同様に、ロボット１００が進入禁止空間に進入しているか否かの判定処理においても、各グループに属する第１の形状点の個数が比較的少ない場合には、作業量及び計算量の低減化を図るために、第１の形状点の各グループを表現した第１の凸包を求めなくてもよい。この場合、各グループに属する第１の形状点に対応する投影点と進入禁止空間を表現した第２の凸包との重なり具合に基づいて、進入禁止空間にロボット１００が進入しているか否かを判定することとなる。
【００６９】
ロボット１００が進入禁止空間に進入しているか否かの判定処理、及びロボット１００が進出禁止空間からその外部に進出しているか否かの判定処理は、第１の凸包と第２の形状点に対応する投影点との重なり具合に基づいて実行されてもよい。この場合、進入禁止空間及び進出禁止空間を表現した第２の凸包を求めなくても済み、作業量及び計算量を低減することができる。
【００７０】
第１の形状点及び第２の形状点をグループ分けする際に、各グループにおいて第１の形状点又は第２の形状点として２点のみが含まれるようにすれば、線分を表したグループの集合となる。したがって、作業量及び計算量の低減化を図るために、凸包同士の重なり具合ではなく線分同士の重なり具合を求めるようにしてもよい。
（実施の形態２）
図７Ａに示す進入禁止空間及び図７Ｂに示す進出禁止空間はすべて凸領域を前提としている。ここで、進入禁止空間を表現した第２の形状点についての凸包と進出禁止空間を表現した第２の形状点についての凸包とを重ね合わせて凹領域を定義することができる。例えば、図８に示す例は、進出禁止空間を凹領域として特定する場合を表している。つまり、長方形状の進出禁止空間Ｂ１における凹部を定義したい位置に、進出禁止空間Ｂ１よりも小さい領域を持つ長方形状の進入禁止空間Ｂ２を重ね合わせている。この結果、進入禁止空間Ｂ２における進出禁止空間Ｂ１以外の領域（凹領域）が、ロボット１００の進出を禁止する空間として定義される。
（実施の形態３）
前記の実施の形態では、Ｙ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面のすべてにおいて凸包同士の重なりが有れば進入していると判定し、そうでなければ進入していないと判定している。しかしながら、このような進入しているか否かの判定によれば、ロボット１００がロボット動作規制対象物４００に実際には進入していないにも関わらず進入していると判定される場合がある。
【００７１】
例えば、図１２に示すようなツール１０３と進入禁止空間Ａ１との３次元上の位置関係の場合、ツール１０３は進入禁止空間Ａ１に進入してはいない。ところで、図１３Ａ、図１３Ｂ、図１３Ｃは、図１２に示すツール１０３及び進入禁止空間Ａ１の形状をそれぞれ特定する形状点をＹ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面それぞれに投影した図である。図１３Ａ乃至図１３Ｃによれば、Ｙ−Ｚ平面、Ｚ−Ｘ平面、及びＸ−Ｙ平面のすべてにおいて、ツール１０３を表現した第１の凸包Ｘ３は進入禁止空間Ａ１を表現した第２の凸包Ｙ１と重なっているので、ツール１０３は進入禁止空間Ａ１に進入していると判定され、ロボット１００の動作に非常停止や電源断などの規制をかけている。
【００７２】
このように、実際に進入していないにも関わらず進入していると判定されてロボット１００の動作に規制をかけている状況は、安全方向への過剰な規制であるので、安全の確保が目的である限りにおいては特に問題はない。ただし、判定の精度を向上することが目的である場合には、このような過剰な規制を防止する必要がある。
【００７３】
このような過剰な規制を防止する対策としては、３つの座標平面（Ｘ−Ｙ平面、Ｙ−Ｚ平面、Ｚ−Ｘ平面）以外の別の平面を新たに定義することとする。なお、この別の平面は、ロボット１００の動作方向（例えばツール１０３の進行方向）と略平行であるように定義される。そして、この別の平面についてもロボット１００の形状を特定する第１の形状点及びロボット動作規制対象物４００の形状を特定する第２の形状点をそれぞれ投影し、３つの座標平面における凸包同士の重なり具合の判定に加えて、この別の平面についても凸包同士の重なり具合を判定すればよい。なお、図１４に示すように、この別の平面においては凸包同士の重なりが生じなくなる。この結果、３つの座標平面及びこの別の平面の全てにおいて凸包同士の重なりが生じていることにはならないので、進入禁止空間に進入していないことを判定することができる。
【００７４】
前記説明から、当業者にとっては、本発明の多くの改良や他の実施の形態が明らかである。従って、前記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び／又は機能の詳細を実質的に変更できる。
【産業上の利用可能性】
【００７５】
本発明は、ロボットの動作を規制するべき対象物であるロボット動作規制対象物を含む環境下で運用される産業用ロボットにとって有用である。
【符号の説明】
【００７６】
１００…ロボット
１０１…アーム部
１０２…アーム部
１０３…ツール
２００…ロボット制御装置
３００…ロボット動作規制装置
４００…ロボット動作規制対象物
Ｇ０〜Ｇ４…グループ
Ｐ０〜Ｐ４…形状点
Ｐｘ，Ｐｙ，Ｐｚ，Ｐｗ，Ｐｖ，Ｐｎ，Ｐｍ…形状点に対応する投影点
Ａ１，Ａ２…進入禁止空間
Ｂ１…進出禁止空間（凸領域）
Ｂ２…進入禁止空間（凸領域）
Ｂ３…進出禁止空間（凹領域）
Ｘ１…アーム部１０１を表す凸包（第１の凸包）
Ｘ２…アーム部１０２を表す凸包（第１の凸包）
Ｘ３…ツール１０３を表す凸包（第１の凸包）
Ｙ１…進入禁止空間Ａ１を表す凸包（第２の凸包）
Ｙ２…進入禁止空間Ａ２を表す凸包（第２の凸包）
【図１】
0005878750.tif 000002
【図２Ａ】
0005878750.tif 000003
【図２Ｂ】
0005878750.tif 000004
【図３】
0005878750.tif 000005
【図４】
0005878750.tif 000006
【図５】
0005878750.tif 000007
【図６Ａ】
0005878750.tif 000008
【図６Ｂ】
0005878750.tif 000009
【図７Ａ】
0005878750.tif 000010
【図７Ｂ】
0005878750.tif 000011
【図８】
0005878750.tif 000012
【図９Ａ】
0005878750.tif 000013
【図９Ｂ】
0005878750.tif 000014
【図９Ｃ】
0005878750.tif 000015
【図１０Ａ】
0005878750.tif 000016
【図１０Ｂ】
0005878750.tif 000017
【図１０Ｃ】
0005878750.tif 000018
【図１１】
0005878750.tif 000019
【図１２】
0005878750.tif 000020
【図１３Ａ】
0005878750.tif 000021
【図１３Ｂ】
0005878750.tif 000022
【図１３Ｃ】
0005878750.tif 000023
【図１４】
0005878750.tif 000024