(57)【要約】【課題】ロボットの侵入禁止領域を効率良く求める。【解決手段】ロボットの動作を擬似的に再現する空間領域のうち、他のロボットの侵入を禁止する侵入禁止領域を算出するロボットの侵入禁止領域算出方法であって、前記空間領域を段階的に細かく分割して、複数の空間ブロックを形成するとともに、前記ロボットの動作を含まない前記空間ブロックを演算の対象から除外し、演算対象領域を絞り込みながら、前記侵入禁止領域を算出する算出ステップを含む。【選択図】図１
2010240773.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を擬似的に再現する空間領域のうち、他のロボットの侵入を禁止する侵入禁止領域を算出するロボットの侵入禁止領域算出方法であって、
前記空間領域を段階的に細かく分割して、複数の空間ブロックを形成するとともに、前記ロボットの動作を含まない前記空間ブロックを演算の対象から除外し、演算対象領域を絞り込みながら、前記侵入禁止領域を算出する算出ステップを含むことを特徴とするロボットの侵入禁止領域算出方法。
【請求項２】
請求項１に記載のロボットの侵入禁止領域算出方法において、
前記算出ステップでは、
前記空間領域を分割して、複数の第１空間ブロックを形成する第１空間分割ステップと、
前記第１空間ブロックのうち、前記ロボットの動作が含まれる前記第１空間ブロックを第１演算対象ブロックと判断するとともに、前記ロボットの動作が含まれない前記第１空間ブロックを第１非演算対象ブロックと判断する第１演算対象判別ステップと、
演算の対象から前記第１非演算対象ブロックを除外する第１除外ステップと、
前記第１演算対象ブロックを分割して、複数の第２空間ブロックを形成する第２空間分割ステップと、
前記第２空間ブロックのうち、前記ロボットの動作が含まれる前記第２空間ブロックを第２演算対象ブロックと判断するとともに、前記ロボットの動作が含まれない前記第２空間ブロックを第２非演算対象ブロックと判断する第２演算対象判別ステップと、
演算の対象から前記第２非演算対象ブロックを除外する第２除外ステップと、を含むことを特徴とするロボットの侵入禁止領域算出方法。
【請求項３】
請求項１または２に記載のロボットの侵入禁止領域算出方法において、
前記算出ステップでは、
前記空間領域を段階的に規定の大きさの前記空間ブロックに細かく分割することを特徴とするロボットの侵入禁止領域算出方法。
【請求項４】
請求項１〜３のいずれか一項に記載のロボットの侵入禁止領域算出方法において、
前記算出ステップでは、
前記空間領域を、前記ロボットが緊急停止可能な領域を有する大きさの空間ブロックまで分割することを特徴とするロボットの侵入禁止領域算出方法。
【請求項５】
請求項１〜４のいずれか一項に記載のロボットの侵入禁止領域算出方法において、
前記侵入禁止領域には、前記ロボットの周囲に設けられた保護領域を含むことを特徴とするロボットの侵入禁止領域算出方法。
【請求項６】
請求項１〜５のいずれか一項に記載のロボットの侵入禁止領域算出方法において、
前記算出ステップの後に、
前記演算対象領域に対応する前記空間ブロックに対して、インターロックを設定するインターロック設定ステップを含むことを特徴とするロボットの侵入禁止領域算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの侵入禁止領域算出方法に関する。
【背景技術】
【０００２】
複数のロボットを動作させるとき、ロボット同士の衝突を防止する必要がある。そのため、ロボットが動作する空間をメモリー空間に擬似的に再現し、ロボットの周囲に他のロボットの侵入を禁止する侵入禁止領域を形成する方法が知られている。また、このような方法に対しては、ロボットの動作の自由度を保つため、不要な領域に侵入禁止領域を形成しないことが要求される。このため、メモリー空間をできるだけ細かく区分し、当該区分されたメモリー空間内にロボットのパターンを形成するとともに、侵入禁止領域を生成するロボットの侵入禁止領域算出方法が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−６８４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のロボットの侵入禁止領域算出方法では、最初から細かく区分けされたメモリー空間からロボットのパターンを形成し、侵入禁止領域を特定する必要があるため、侵入禁止領域を特定するまでに、計算処理量が膨大となり、算出処理時間がかかってしまう、という課題があった。
【課題を解決するための手段】
【０００５】
本発明は、上記課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００６】
［適用例１］本適用例にかかるロボットの侵入禁止領域算出方法は、ロボットの動作を擬似的に再現する空間領域のうち、他のロボットの侵入を禁止する侵入禁止領域を算出するロボットの侵入禁止領域算出方法であって、前記空間領域を段階的に細かく分割して、複数の空間ブロックを形成するとともに、前記ロボットの動作を含まない前記空間ブロックを演算の対象から除外し、演算対象領域を絞り込みながら、前記侵入禁止領域を算出する算出ステップを含むことを特徴とする。
【０００７】
この構成によれば、空間領域を分割し、分割された空間領域のうちからロボットの動作を含まない空間領域を演算の対象から除外し、残りの空間領域を演算対象とする。そして、空間領域を段階的に細かく分割しながら、非演算領域を除外して演算対象領域を狭めていく。従って、速い段階で、ロボットの領域を特定できるとともに、計算処理量が低減するので、算出処理速度を高めることができる。
【０００８】
［適用例２］上記適用例にかかるロボットの侵入禁止領域算出方法の前記算出ステップでは、前記空間領域を分割して、複数の第１空間ブロックを形成する第１空間分割ステップと、前記第１空間ブロックのうち、前記ロボットの動作が含まれる前記第１空間ブロックを第１演算対象ブロックと判断するとともに、前記ロボットの動作が含まれない前記第１空間ブロックを第１非演算対象ブロックと判断する第１演算対象判別ステップと、演算の対象から前記第１非演算対象ブロックを除外する第１除外ステップと、前記第１演算対象ブロックを分割して、複数の第２空間ブロックを形成する第２空間分割ステップと、前記第２空間ブロックのうち、前記ロボットの動作が含まれる前記第２空間ブロックを第２演算対象ブロックと判断するとともに、前記ロボットの動作が含まれない前記第２空間ブロックを第２非演算対象ブロックと判断する第２演算対象判別ステップと、演算の対象から前記第２非演算対象ブロックを除外する第２除外ステップと、を含むことを特徴とする。
【０００９】
この構成によれば、第１空間分割ステップにおいて、複数の第１空間ブロックが形成される。そして、ロボットの動作が含まれる第１空間ブロックとロボットの動作が含まれない第１空間ブロックとに分けられ、ロボットの動作が含まれる第１空間ブロックを第１演算対象ブロックとし、第２空間分割ステップでは、第１演算対象ブロックの第１空間部ブロックを分割して、複数の第２空間ブロックを形成する。すなわち、ロボットの動作が含まれない第１空間ブロックは、演算対象から外されることになる。そして、演算対象となる第１空間ブロックが分割され、ロボットの動作が含まれる第２空間ブロックとロボットの動作が含まれない第２空間ブロックとに分けられる。従って、第２演算対象判別ステップでは、第１演算対象判別ステップに比べ、演算領域対象領域が狭まっている。このように、演算に不要な部分を除外しながら、演算領域対象領域が狭められるので、演算処理速度を高めることができる。
【００１０】
［適用例３］上記適用例にかかるロボットの侵入禁止領域算出方法の前記算出ステップでは、前記空間領域を段階的に規定の大きさの前記空間ブロックに細かく分割することを特徴とする。
【００１１】
この構成によれば、空間領域を規定の大きさに分割することにより、算出処理ルーチンを容易に行うことができる。
【００１２】
［適用例４］上記適用例にかかるロボットの侵入禁止領域算出方法の前記算出ステップでは、前記空間領域を、前記ロボットが緊急停止可能な領域を有する大きさの空間ブロックまで分割することを特徴とする。
【００１３】
この構成によれば、空間領域を分割する限度を規制する。これにより、不用意な空間領域の分割の繰り返しを防止することができる。
【００１４】
［適用例５］上記適用例にかかるロボットの侵入禁止領域算出方法において、前記侵入禁止領域には、前記ロボットの周囲に設けられた保護領域を含むことを特徴とする。
【００１５】
この構成によれば、ロボットの周囲に設けられた保護領域を含めて侵入禁止領域を演算するので、さらに、ロボットの安全性を高めることができる。
【００１６】
［適用例６］上記適用例にかかるロボットの侵入禁止領域算出方法において、前記算出ステップの後に、前記演算対象領域に対応する前記空間ブロックに対して、インターロックを設定するインターロック設定ステップを含むことを特徴とする。
【００１７】
この構成によれば、他のロボットは、インターロックが設定された領域への侵入が阻止されるので、ロボット同士の衝突を防止することができる。
【図面の簡単な説明】
【００１８】
【図１】ロボットの侵入禁止領域算出方法を示すフローチャート。
【図２】侵入禁止領域算出方法例を示す説明図。
【図３】侵入禁止領域算出方法例を示す説明図。
【発明を実施するための形態】
【００１９】
以下、本発明を具体化した実施形態について図面に従って説明する。
【００２０】
図１は、ロボットの侵入禁止領域演算方法を示すフローチャートである。図２および図３は、ロボットの侵入禁止領域演算方法を説明する説明図である。
【００２１】
まず、ロボット１０が動作する空間領域２０について説明する。空間領域２０は、例えば、図２（ａ）に示すように、ロボット１０が動作する動作空間を擬似的に再現したメモリー空間である。そして、ロボット１０が空間領域２０の中に配置され、空間領域２０においてロボット１０の駆動制御等を行うことができる。また、空間領域２０は、ロボット１０が動作する空間を擬似的に、例えば、３次元の立方体として再現することができる（なお、本実施形態では、２次元で表している）。
【００２２】
このような空間領域２０の中に、例えば、複数のロボット１０を協働して動作させる場合には、ロボット１０同士の衝突等を防止する必要がある。このため、空間領域２０を分割して複数の空間ブロックを形成し、各ロボット１０の動作領域にインターロックを設定して、他のロボットの侵入を禁止する侵入禁止領域を形成する方法を採用することができる。また、このような方法においては、一の空間ブロックをロボット１０の形状や動作状況に応じて、可能な限り小さく形成する必要がある。これは、ロボット１０の動作の自由度を上げ、作業効率を高めるためである。
【００２３】
しかしながら、当初の段階から空間ブロックを小さく形成した場合には、全ての空間ブロックに対して、侵入禁止領域の有無を判断しなければならない。すなわち、全ての空間ブロックが侵入禁止領域を算出するための演算対象領域となるので、演算処理量が膨大となり、算出速度が低下するおそれがある。本発明は、上記の不都合を解決するためになされたものであり、以下、ロボットの侵入禁止領域算出方法について、具体的に説明する。
【００２４】
図１において、ステップＳ１では、空間領域を分割する（第１空間分割ステップ）。具体的には、図２（ｂ）に示すように、空間領域２０を分割して、複数の第１空間ブロック２１を形成する。ここで、分割する大きさは、ロボット１０の形状、大きさ、配置、動作等に応じて、適宜設定することができる。本実施形態では、空間領域２０を３×３の９個の第１空間ブロック２１に分割している。なお、この時点で、第１空間ブロック２１の全ての領域が、侵入禁止領域を算出するための演算領域１５となる。
【００２５】
ステップＳ２では、演算対象判別を行う（第１演算対象判別ステップ）。具体的には、図２（ｂ）に示すように、分割された第１空間ブロック２１に対して、ロボット１０の動作が含まれる第１空間ブロック２１ａと、ロボット１０の動作が含まれない第１空間ブロック２１ｂとを区別する。そして、ロボット１０の動作が含まれる第１空間ブロック２１ａを第１演算対象ブロック２１ａと判断するとともに、ロボット１０の動作が含まれない第１空間ブロック２１ｂを第１非演算対象ブロック２１ｂと判断する。
【００２６】
なお、本実施形態では、ロボット１０の周囲には保護領域１１を予め設定している。当該保護領域１１は、ロボット１０が緊急停止した場合に、ロボット１０が停止可能な範囲を保護領域１１と設定している。本実施形態では、ロボット１０と保護領域１１を合わせた領域をロボット１０の領域として説明する。
【００２７】
ステップＳ３では、非演算対象ブロックがあるか否かを判断する。非演算対象ブロックがある（ＹＥＳ）場合には、ステップＳ４に移行し、非演算対象ブロックがない（ＮＯ）場合には、ステップＳ７に移行する。
【００２８】
ステップＳ４では、非演算対象ブロックを演算対象から除外する（第１除外ステップ）。具体的には、図２（ｃ）に示すように、基の演算領域１５から第１非演算対象ブロック２１ｂを除外し、第１演算対象ブロック２１ａのみが残る。そして、当該第１演算対象ブロック２１ａが、新たな演算領域１５ａとして設定される。一方、第１非演算対象ブロック２１ｂの全領域は、非演算対象領域１６ａとして設定され、以降の演算対象から外れる。
【００２９】
ステップＳ５では、空間ブロックの分割を継続するか否かを判断する。空間ブロックの分割を継続する（ＹＥＳ）場合には、ステップＳ６に移行し、空間ブロックの分割を継続しない（ＮＯ）場合には、ステップＳ７に移行する。
【００３０】
本実施形態では、空間ブロックの分割を継続する（ＹＥＳ）場合について説明する。
【００３１】
ステップＳ６では、第１演算対象ブロック２１ａを分割する（第２空間分割ステップ）。具体的には、図２（ｄ）に示すように、第１演算対象ブロック２１ａを分割して、複数の第２空間ブロック２２を形成する。ここで、分割する大きさは、ロボット１０の形状、大きさ、配置、動作等に応じて、適宜設定することができる。本実施形態では、一の第１演算対象ブロック２１ａを２×２の４個の第２空間ブロック２２に分割している。次いで、ステップＳ２に移行する。
【００３２】
ステップＳ２では、演算対象判別を行う（第２演算対象判別ステップ）。具体的には、図２（ｄ）に示すように、分割された第２空間ブロック２２に対して、ロボット１０の動作が含まれる第２空間ブロック２２ａと、ロボット１０の動作が含まれない第２空間ブロック２２ｂとを区別する。そして、ロボット１０の動作が含まれる第２空間ブロック２２ａを第２演算対象ブロック２２ａと判断するとともに、ロボット１０の動作が含まれない第２空間ブロック２２ｂを第２非演算対象ブロック２２ｂと判断する。
【００３３】
次いで、ステップＳ３では、非演算対象ブロックがあるか否かを判断し、非演算対象ブロックがある（ＹＥＳ）場合には、ステップＳ４に移行し、非演算対象ブロックがない（ＮＯ）場合には、ステップＳ７に移行する。
【００３４】
ステップＳ４では、非演算対象ブロックを演算対象から除外する（第２除外ステップ）。具体的には、図２（ｅ）に示すように、先に設定された演算領域１５ａから第２非演算対象ブロック２２ｂを除外し、第２演算対象ブロック２２ａのみが残る。そして、第２演算対象ブロック２２ａが、新たな演算領域１５ｂとして設定される。一方、第２非演算対象ブロック２２ｂは、第１非演算対象ブロック２１ｂとともに、非演算対象領域１６ｂとして設定され、以降の演算対象から外れる。
【００３５】
次いで、ステップＳ５では、空間ブロックの分割を継続するか否かを判断し、空間ブロックの分割を継続する（ＹＥＳ）場合には、ステップＳ６に移行し、空間ブロックの分割を継続しない（ＮＯ）場合には、ステップＳ７に移行する。以降、図２および図３に従って、空間ブロックの分割を継続する（ＹＥＳ）場合について説明する。
【００３６】
ステップＳ６では、第２演算対象ブロック２２ａを分割する（第３空間分割ステップ）。具体的には、図２（ｆ）に示すように、第２演算対象ブロック２２ａを分割して、複数の第３空間ブロック２３を形成する。ここで、分割する大きさは、ロボット１０の形状、大きさ、配置、動作等に応じて、適宜設定することができる。本実施形態では、一の第２演算対象ブロック２２ａを２×２の４個の第３空間ブロック２３に分割している。次いで、ステップＳ２に移行する。
【００３７】
ステップＳ２では、演算対象判別を行う（第３演算対象判別ステップ）。具体的には、図２（ｆ）に示すように、分割された第３空間ブロック２３に対して、ロボット１０の動作が含まれる第３空間ブロック２３ａと、ロボット１０の動作が含まれない第３空間ブロック２３ｂとを区別する。そして、ロボット１０の動作が含まれる第３空間ブロック２３ａを第３演算対象ブロック２３ａと判断するとともに、ロボット１０の動作が含まれない第３空間ブロック２３ｂを第３非演算対象ブロック２３ｂと判断する。
【００３８】
次いで、ステップＳ３では、非演算対象ブロックがあるか否かを判断し、非演算対象ブロックがある（ＹＥＳ）場合には、ステップＳ４に移行し、非演算対象ブロックがない（ＮＯ）場合には、ステップＳ７に移行する。
【００３９】
ステップＳ４では、非演算対象ブロックを演算対象から除外する（第３除外ステップ）。具体的には、図３（ａ）に示すように、先に設定された演算領域１５ｂから第３非演算対象ブロック２３ｂを除外し、第３演算対象ブロック２３ａのみが残る。そして、第３演算対象ブロック２３ａが、新たな演算領域１５ｃとして設定される。一方、第３非演算対象ブロック２３ｂは、第１非演算対象ブロック２１ｂおよび第２非演算対象ブロック２２ｂとともに、非演算対象領域１６ｃとして設定され、以降の演算対象から外れる。
【００４０】
次いで、ステップＳ５では、空間ブロックの分割を継続するか否かを判断し、空間ブロックの分割を継続する（ＹＥＳ）場合には、ステップＳ６に移行する。
【００４１】
ステップＳ６では、第３演算対象ブロック２３ａを分割する（第４空間分割ステップ）。具体的には、図３（ｂ）に示すように、第３演算対象ブロック２３ａを分割して、複数の第４空間ブロック２４を形成する。ここで、分割する大きさは、ロボット１０の形状、大きさ、配置、動作等に応じて、適宜設定することができる。本実施形態では、一の第３演算対象ブロック２３ａを２×２の４個の第４空間ブロック２４に分割している。次いで、ステップＳ２に移行する。
【００４２】
ステップＳ２では、演算対象判別を行う（第４演算対象判別ステップ）。具体的には、図３（ｂ）に示すように、分割された第４空間ブロック２４に対して、ロボット１０の動作が含まれる第４空間ブロック２４ａと、ロボット１０の動作が含まれない第４空間ブロック２４ｂとを区別する。そして、ロボット１０の動作が含まれる第４空間ブロック２４ａを第４演算対象ブロック２４ａと判断するとともに、ロボット１０の動作が含まれない第４空間ブロック２４ｂを第４非演算対象ブロック２４ｂと判断する。
【００４３】
次いで、ステップＳ３では、非演算対象ブロックがあるか否かを判断し、非演算対象ブロックがある（ＹＥＳ）場合には、ステップＳ４に移行し、非演算対象ブロックがない（ＮＯ）場合には、ステップＳ７に移行する。
【００４４】
ステップＳ４では、非演算対象ブロックを演算対象から除外する（第４除外ステップ）。具体的には、図３（ｃ）に示すように、先に設定された演算領域１５ｃから第４非演算対象ブロック２４ｂを除外し、第４演算対象ブロック２４ａのみが残る。そして、第４演算対象ブロック２４ａが、新たな演算領域１５ｄとして設定される。一方、第４非演算対象ブロック２４ｂは、第１非演算対象ブロック２１ｂ、第２非演算対象ブロック２２ｂおよび第３非演算対象ブロック２３ｂとともに、非演算対象領域１６ｄとして設定される。
【００４５】
以上、空間領域２０を、ロボット１０が緊急停止可能な領域を有する大きさの第４演算対象ブロック２４ａまで段階的に分割するとともに、演算領域１５を演算領域１５ｄにまで絞り込む方法について説明した。次に、ステップＳ７について説明する。
【００４６】
ステップＳ７では、インターロックを設定する（インターロック設定ステップ）。具体的には、図３（ｃ）に示すように、最終的に演算対象が絞り込まれた演算領域１５ｄは、侵入禁止領域３０と判断され、当該侵入禁止領域３０を構成する第４空間ブロック２４ａの全てにインターロックを設定する。これにより、他のロボットの侵入を防止し、ロボット間同士の衝突等を回避することができる。
【００４７】
従って、上記の実施形態によれば、以下に示す効果がある。
【００４８】
まず、空間領域２０を適宜分割して第１空間ブロック２１を形成した。そして、ロボット１０の位置に対応する第１空間ブロック２１を第１演算対象ブロック２１ａとし、他の第１空間ブロック２１ｂを演算対象から除外した。次いで、第１演算対象ブロック２１ａを分割し、ロボット１０の位置に対応する第２空間ブロック２２を第２演算対象ブロック２２ａとし、他の第２空間ブロック２２ｂを演算対象から除外した。そして、上記ステップを繰り返し行い、段階的に、空間ブロック２１〜２４を分割するとともに、不要な演算領域を演算対象から外していき、演算対象領域を絞りこんだ。このように、大きな領域（空間領域２０）から小さな領域（第４演算対象ブロック２４ａ）に絞り込む過程における演算量が削減されるので、高速で侵入禁止領域３０を算出することができる。
【００４９】
なお、上記の実施形態に限定されるものではなく、以下のような変形例が挙げられる。
【００５０】
（変形例１）本実施形態では、ロボット１０の領域に保護領域１１を予め設けたが、これを省略してもよい。このようにしても、ロボット１０が緊急停止可能な領域を有する大きさの空間ブロックに分割し、当該空間ブロックにインターロックを設定することにより、保護領域１１を設けた場合と同様の効果を得ることができる。
【００５１】
（変形例２）本実施形態では、空間ブロックの分割を３回繰り返して行ったが、これに、限定されない。例えば、図２（ｃ）の第１演算対象判別ステップが終了した後に、図３（ｂ）に示す空間ブロック２４の大きさ（ロボット１０が緊急停止可能な領域を有する大きさ）に分割してもよい。このようにしても、当初から細かく空間ブロックを形成する方法に比べ、計算量は削減できるので、侵入禁止領域３０を早く算出することができる。
【００５２】
（変形例３）上記実施形態では、主に、産業用ロボットを例に説明したが、これに限定されない。例えば、他の運動体や玩具等にも適用することができる。このようにしても、上記同様の効果を得ることができる。
【符号の説明】
【００５３】
１０…ロボット、１１…保護領域、１５，１５ａ〜１５ｄ…演算領域、１６ａ〜１６ｄ…非演算対象領域、２０…空間領域、２１〜２４…空間ブロック、２１ａ〜２４ａ…演算対象ブロックとしての空間ブロック、２１ｂ〜２４ｂ…非演算対象ブロックとしての空間ブロック、３０…侵入禁止領域。
【図１】
2010240773.tif 000003
【図２】
2010240773.tif 000004
【図３】
2010240773.tif 000005