(57)【要約】【課題】ロボットが使用するツールを適切な位置に配置する。【解決手段】ツール位置決定装置は、２つのロボットに割り当てられた作業の内容及び各作業で使用するツールの情報を記述した標準動作パターンシーケンスと、作業領域の３Ｄモデルと、に基づいて、ツールそれぞれを配置可能なツール交換台の組み合わせを示すツール配置パターンを複数生成する。また、ツール位置決定装置は、複数のツール配置パターンそれぞれを採用した場合における、各ロボットの干渉領域作業時間（合計）を干渉領域内におけるロボットの移動距離から算出し、算出した干渉領域作業時間に基づいてツール配置パターンを決定する。【選択図】図１８
2020066065.tif 000002
【特許請求の範囲】
【請求項１】
第１ロボットと第２ロボットに割り当てられた作業の内容及び各作業で前記第１、第２ロボットが使用するツールの情報を記述した作業データと、前記第１、第２ロボット及び複数のツール交換台の配置及び形状に関する情報と、に基づいて、前記各作業で使用するツールそれぞれを配置可能なツール交換台の組み合わせパターンを複数生成する生成部と、
前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットが干渉する領域での前記第１、第２ロボットの動作時間を前記干渉する領域における前記第１、第２ロボットの移動距離に基づいて算出し、算出した前記第１、第２ロボットの動作時間の和を干渉領域作業時間として算出する算出部と、
前記干渉領域作業時間に基づいて、前記複数の組み合わせパターンのいずれかを選択して、各ツールを配置するツール交換台を決定する決定部と、
を備える情報処理装置。
【請求項２】
前記算出部は、前記干渉する領域における前記第１、第２ロボットの移動距離を、前記作業データと前記配置及び形状に関する情報とから算出する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記算出部は、前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットに割り当てられた全ての作業が完了するまでの全作業時間を算出し、
前記決定部は、前記干渉領域作業時間と前記全作業時間とに基づいて、前記複数の組み合わせパターンのいずれかを選択する、ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記算出部は、前記複数の組み合わせパターンを前記干渉領域作業時間が短い順に選択して、前記全作業時間を算出し、
前記決定部は、前記算出部が次に選択する組み合わせパターンの前記干渉領域作業時間が、前記算出部が既に算出した前記全作業時間のいずれかよりも長い場合に、既に算出した前記全作業時間が最短の組み合わせパターンを選択する、ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記生成部は、前記配置及び形状に関する情報に基づいて、前記第１ロボット又は前記第２ロボットが各ツールを他部品に衝突させずに前記ツール交換台に置くことができ、かつ前記第１ロボット又は前記第２ロボットが各ツールを着脱する際に無理な姿勢をとることがないという条件を満たす組み合わせパターンを複数生成する、ことを特徴とする請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
第１ロボットと第２ロボットに割り当てられた作業の内容及び各作業で前記第１、第２ロボットが使用するツールの情報を記述した作業データと、前記第１、第２ロボット及び複数のツール交換台の配置及び形状に関する情報と、に基づいて、前記各作業で使用するツールそれぞれを配置可能なツール交換台の組み合わせパターンを複数生成し、
前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットが干渉する領域での前記第１、第２ロボットの動作時間を前記干渉する領域における前記第１、第２ロボットの移動距離に基づいて算出し、算出した前記第１、第２ロボットの動作時間の和を干渉領域作業時間として算出し、
前記干渉領域作業時間に基づいて、前記複数の組み合わせパターンのいずれかを選択して、各ツールを配置するツール交換台を決定する、
処理をコンピュータに実行させるためのツール位置決定プログラム。
【請求項７】
第１ロボットと第２ロボットに割り当てられた作業の内容及び各作業で前記第１、第２ロボットが使用するツールの情報を記述した作業データと、前記第１、第２ロボット及び複数のツール交換台の配置及び形状に関する情報と、に基づいて、前記各作業で使用するツールそれぞれを配置可能なツール交換台の組み合わせパターンを複数生成し、
前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットが干渉する領域での前記第１、第２ロボットの動作時間を前記干渉する領域における前記第１、第２ロボットの移動距離に基づいて算出し、算出した前記第１、第２ロボットの動作時間の和を干渉領域作業時間として算出し、
前記干渉領域作業時間に基づいて、前記複数の組み合わせパターンのいずれかを選択して、各ツールを配置するツール交換台を決定する、
処理をコンピュータが実行することを特徴とするツール位置決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ツール位置決定プログラム及びツール位置決定方法に関する。
【背景技術】
【０００２】
従来、組立作業ロボットに製品組立作業を行わせるためには、ロボットにその作業を実施する動作（ロボット動作プログラム）を教示する必要がある。ロボット動作プログラムを生成する方法としては、例えば、３次元仮想空間でロボット動作プログラムを生成する方法が知られている。
【０００３】
組立作業ロボットを用いた製品組み立て作業において生産性を向上するためには、ロボットの動作時間が短くなるように作業順などを調整する必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１３６４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ロボットは、実施する作業の種類に応じてアーム先端のツールを交換することがある。ツール交換の際には、ロボットはツールが配置されている場所に移動する必要があるため、ツールの配置がロボットの動作時間に影響を与える可能性がある。
【０００６】
しかしながら、従来においてはツールの配置がロボットの動作時間に与える影響について検討されていなかった。
【０００７】
１つの側面では、本発明は、ロボットが使用するツールを適切な位置に配置することが可能な情報処理装置、ツール位置決定プログラム及びツール位置決定方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様では、情報処理装置は、第１ロボットと第２ロボットに割り当てられた作業の内容及び各作業で前記第１、第２ロボットが使用するツールの情報を記述した作業データと、前記第１、第２ロボット及び複数のツール交換台の配置及び形状に関する情報と、に基づいて、前記各作業で使用するツールそれぞれを配置可能なツール交換台の組み合わせパターンを複数生成する生成部と、前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットが干渉する領域での前記第１、第２ロボットの動作時間を前記干渉する領域における前記第１、第２ロボットの移動距離に基づいて算出し、算出した前記第１、第２ロボットの動作時間の和を干渉領域作業時間として算出する算出部と、前記干渉領域作業時間に基づいて、前記複数の組み合わせパターンのいずれかを選択して、各ツールを配置するツール交換台を決定する決定部と、を備えている。
【発明の効果】
【０００９】
ロボットが使用するツールを適切な位置に配置することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係るツール位置決定装置の構成を概略的に示す図である。
【図２】１台のロボットが配置された作業領域を示す図である。
【図３】図３（ａ）は、ロボットのアームの先端に設けられるツールの一例を示す図であり、図３（ｂ）は、ツール交換台の一例を示す図である。
【図４】ツール位置決定装置の機能ブロック図である。
【図５】標準動作パターンシーケンスの一例を示す図である。
【図６】ツール位置決定装置の全体処理を示すフローチャートである。
【図７】図６のステップＳ１１の詳細処理を示すフローチャート（その１）である。
【図８】図６のステップＳ１１の詳細処理を示すフローチャート（その２）である。
【図９】ツールとツール交換台の関係表を示す図である。
【図１０】図６のステップＳ１２の詳細処理を示すフローチャートである。
【図１１】図１０のステップＳ１０６の詳細処理を示すフローチャートである。
【図１２】図１２（ａ）〜図１２（ｆ）は、ステップＳ１２の処理を説明するための図（その１）である。
【図１３】図１３（ａ）〜図１３（ｃ）は、ステップＳ１２の処理を説明するための図（その２）である。
【図１４】ツール配置パターンテーブルを示す図である。
【図１５】図１５（ａ）〜図１５（ｃ）は、図１４の各パターンを模式的に示す図（その１）である。
【図１６】図１６（ａ）〜図１６（ｃ）は、図１４の各パターンを模式的に示す図（その２）である。
【図１７】図６のステップＳ１４の詳細処理を示すフローチャートである。
【図１８】図１８（ａ）は、干渉動作を示す図であり、図１８（ｂ）は、各作業における干渉領域作業時間及び干渉領域作業時間（合計）を示す表である。
【図１９】干渉領域作業時間テーブルを示す図である。
【図２０】図６のステップＳ１６の詳細処理を示すフローチャートである。
【図２１】図２１（ａ）、図２１（ｂ）は、図２０の処理を説明するための図（その１）である。
【図２２】図２２（ａ）、図２２（ｂ）は、図２０の処理を説明するための図（その２）である。
【図２３】図２３（ａ）、図２３（ｂ）は、図２０の処理を説明するための図（その３）である。
【発明を実施するための形態】
【００１１】
以下、情報処理装置としてのツール位置決定装置の一実施形態について、図１〜図２３に基づいて詳細に説明する。
【００１２】
図１には、一実施形態に係るツール位置決定装置１０のハードウェア構成が示されている。本実施形態のツール位置決定装置１０は、図２に示すような作業領域５０に配置された２台のロボット（第１ロボットＲ１、第２ロボットＲ２）が作業を行う際に、作業において利用するツールをツール交換台Ｈ１〜Ｈ６のいずれに配置するかを決定する装置である。ここで、ツール交換台Ｈ１〜Ｈ６には１つのツールのみを配置することができるものとする。また、図２の作業領域５０には、部品を供給する供給機（フィーダ）ＦＤが設けられている。なお、ツールは、図３（ａ）に示すように、ロボットＲ１，Ｒ２のアームの先端に交換可能に設けられ、ツール交換台は、図３（ｂ）に示すようにツールを保持する台である。
【００１３】
ツール位置決定装置１０は、ＰＣ（Personal Computer）などの情報処理装置であり、図１に示すように、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、ネットワークインタフェース９７、表示部９３、入力部９５、及び可搬型記憶媒体用ドライブ９９等を備えている。これらツール位置決定装置１０の構成各部は、バス９８に接続されている。表示部９３は液晶ディスプレイ等を含み、入力部９５は、キーボード、マウス、タッチパネル等を含む。ツール位置決定装置１０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（ツール位置決定プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（ツール位置決定プログラムを含む）をＣＰＵ９０が実行することにより、図４に示す各部としての機能が実現されている。なお、図４の各部の機能は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の集積回路により実現されてもよい。
【００１４】
図４には、ツール位置決定装置１０の機能ブロック図が示されている。図４に示すように、ツール位置決定装置１０は、ＣＰＵ９０がプログラムを実行することにより、情報取得部１２、ペア特定部１３、パターン列挙部１４、最適パターン決定部１６、として機能する。
【００１５】
情報取得部１２は、ユーザが作成した標準動作パターンシーケンス（図５参照）や、図２に示す作業領域５０やロボットＲ１、Ｒ２、ツール交換台Ｈ１〜Ｈ６の配置及び形状に関する情報（３Ｄモデル）を取得し、ペア特定部１３及び最適パターン決定部１６に受け渡す。ここで、図５の標準動作パターンシーケンスには、各ロボットに実施させる作業の内容や順序が記述されている。例えば、標準動作パターンシーケンスには、ロボットＲ１は、作業１、作業２、作業３の順に実施することや、作業１ではツールＴ１を使用し、作業２ではツールＴ２を使用し、作業３ではツールＴ３を使用することが記述されている。また、標準動作パターンシーケンスには、ロボットＲ２は、作業４、作業５、作業６の順に実施することや、作業４ではツールＴ４を使用し、作業５ではツールＴ５を使用し、作業６ではツールＴ１を使用することが記述されている。更に、標準動作パターンシーケンスには各作業に含まれる動作の時間についても記述されている。
【００１６】
ペア特定部１３は、標準動作パターンシーケンスや、３Ｄモデルに基づいて、ツールとツールを配置可能なツール交換台の組み合わせ（ペア）を特定し、パターン列挙部１４に対して出力する。
【００１７】
パターン列挙部１４は、ペア特定部１３から取得したペアの情報に基づいて、各ツールと各ツールを配置可能なツール交換台との組み合わせを示すツール配置パターンを生成し、ツール配置パターンテーブル（図１４参照）に格納する。
【００１８】
最適パターン決定部１６は、パターン列挙部１４が生成したツール配置パターンのうち、いずれのパターンが最適であるかを決定する。
【００１９】
（ツール位置決定装置１０の処理について）
以下、ツール位置決定装置１０の処理について説明する。
【００２０】
図６には、ツール位置決定装置１０の全体処理がフローチャートにて示されている。図６の処理においては、情報取得部１２が、ユーザによって入力される標準動作パターンシーケンスや３Ｄモデルを取得する（ステップＳ１０）。次いで、ペア特定部１３が、ツールとツール交換台のペアを特定する処理を実行する（ステップＳ１１）。次いで、パターン列挙部１４が、ツール配置パターンを全て列挙する処理を実行する（ステップＳ１２）。次いで、最適パターン決定部１６が、ツール配置パターンごとに、干渉領域作業時間を算出する処理（ステップＳ１４）と、最適なツール配置パターンを決定する処理（ステップＳ１６）と、を実行する。
【００２１】
以下、ステップＳ１１、Ｓ１２、Ｓ１４、Ｓ１６の処理について、詳細に説明する。
【００２２】
（ステップＳ１１の処理について）
ステップＳ１１においては、ペア特定部１３が、図７、図８のフローチャートに沿って、ツールとツールを配置することができるツール交換台のペアを全て特定する処理を実行する。
【００２３】
図７の処理においては、ペア特定部１３は、まずステップＳ２０において、標準動作パターンシーケンスに含まれるロボットを取得してロボットリストに登録する。図５の標準動作パターンシーケンスの場合、ロボットＲ１、Ｒ２が取得されるため、ロボットリストにＲ１，Ｒ２が登録されることになる。
【００２４】
次いで、ステップＳ２２では、ペア特定部１３が、ロボットリスト内の全ロボットを選択したか否かを判断する。このステップＳ２２の判断が否定されると、ステップＳ２４に移行する。
【００２５】
ステップＳ２４に移行すると、ペア特定部１３は、ロボットリストから未選択のロボットを選択する。ここでは、一例として、ペア特定部１３は、ロボットＲ１を選択したものとする。
【００２６】
次いで、ステップＳ２６では、ペア特定部１３が、選択したロボットの標準動作パターンシーケンスを取得する。
【００２７】
次いで、ステップＳ２８では、ペア特定部１３が、取得した標準動作パターンシーケンス内の各作業に設定されているツールを取得してツールリストに登録する。ここでは、図５の標準動作パターンシーケンスからツールＴ１、Ｔ２、Ｔ３が取得されるため、ツールリストにはツールＴ１、Ｔ２、Ｔ３が登録される。
【００２８】
次いで、ステップＳ３０では、ペア特定部１３が、３Ｄモデルからツール交換台を取得し交換台リストに登録する。ここでは、３Ｄモデルからツール交換台Ｈ１〜Ｈ６が取得されるので、交換台リストにはＨ１〜Ｈ６が登録される。
【００２９】
次いで、ステップＳ３２では、ペア特定部１３が、交換台リスト内の全てのツール交換台を選択したか否かを判断する。このステップＳ３２の判断が否定されると、ペア特定部１３は、ステップＳ３４に移行する。
【００３０】
ステップＳ３４に移行すると、ペア特定部１３は、交換台リスト（Ｈ１〜Ｈ６）から未選択のツール交換台を選択する。ここでは、ツール交換台Ｈ１が選択されたとする。
【００３１】
次いで、ステップＳ３６では、ペア特定部１３が、選択しているロボット（Ｒ１）のアーム先端が選択しているツール交換台（Ｈ１）にあるときの姿勢を導出する。この場合、ペア特定部１３は、逆運動学計算を利用して姿勢を導出する。この処理により、姿勢が導出できた場合には、ロボットが無理な姿勢をとることなく、ロボットのアーム先端がツール交換台に届くことを意味する。
【００３２】
次いで、ステップＳ３８では、ペア特定部１３が、姿勢を導出できたか否かを判断する。すなわち、ペア特定部１３は、ロボットのアーム先端がツール交換台に届くか否かを判断する。このステップＳ３８の判断が否定された場合（届かない場合）には、ステップＳ３２に戻るが、肯定された場合（届く場合）には、図８のステップＳ４０に移行する。
【００３３】
ステップＳ４０に移行した場合には、ペア特定部１３は、ツールリスト内の全てのツールを選択したか否かを判断する。このステップＳ４０の判断が否定された場合、ペア特定部１３は、ステップＳ４２に移行する。
【００３４】
ステップＳ４２に移行すると、ペア特定部１３は、ツールリストから未選択のツールを選択する。ここでは、ツールＴ１が選択されたものとする。
【００３５】
次いで、ステップＳ４４では、ペア特定部１３が、３Ｄモデル（３Ｄ仮想空間）上で選択しているツール（Ｔ１）を選択しているツール交換台（Ｈ１）に配置する。
【００３６】
次いで、ステップＳ４６では、ペア特定部１３が、干渉チェックを実行する。この場合、ペア特定部１３は、３Ｄモデル上で選択いているツール（Ｔ１）を取り出し動作に沿って動かし、ツール（Ｔ１）がツール交換台（Ｈ１）周辺の他の設備等に衝突しないかを干渉チェック技術を用いて判定する。
【００３７】
次いで、ステップＳ４８では、ペア特定部１３が、干渉したか否かを判断する。このステップＳ４８の判断が否定された場合には、ステップＳ５０に移行し、ペア特定部１３は、ツールとツール交換台のペアをパターン列挙部１４に出力する。この場合、ツールＴ１とツール交換台Ｈ１のペアがパターン列挙部１４に出力されたものとする。その後は、ステップＳ４０に戻る。
【００３８】
なお、ステップＳ４８の判断が肯定された場合には、ステップＳ５０を経ずに（ツールとツール交換台のペアを出力せずに）、ステップＳ４０に戻る。
【００３９】
ステップＳ４０に戻ると、ペア特定部１３は、ツールリスト内の全てのツールを選択したか否かを判断する。このステップＳ４０の判断が否定されると、ステップＳ４２に移行し、ペア特定部１３は、ツールリストから未選択のツールを選択する。ここでは、ツールＴ２が選択されたものとする。その後は、ペア特定部１３は、ステップＳ４４〜Ｓ５０の処理・判断を上記と同様に実行する。この場合、ステップＳ４８の判断が否定され、ステップＳ５０においてツールＴ２とツール交換台Ｈ１のペアがパターン列挙部１４に出力されたものとする。その後は、ステップＳ４０に戻る。
【００４０】
ステップＳ４０に戻ると、ペア特定部１３は、ツールリスト内の全てのツールを選択したか否かを判断する。このステップＳ４０の判断が否定されると、ステップＳ４２に移行し、ペア特定部１３は、ツールリストから未選択のツールを選択する。ここでは、ツールＴ３が選択されたものとする。その後は、ペア特定部１３は、ステップＳ４４以降の処理・判断を上記と同様に実行する。この場合において、例えば、ステップＳ４８の判断が肯定されたとすると、ツールＴ３とツール交換台Ｈ１のペアは出力せずに、ステップＳ４０に戻ることになる。
【００４１】
以上のようにして、ツールリスト内の全てのツールを選択した後にステップＳ４０に戻ると、ステップＳ４０の判断が肯定され、図７のステップＳ３２に戻る。
【００４２】
ステップＳ３２に戻ると、ペア特定部１３は、交換台リスト内の全てを選択したか否かを判断する。ここでは、まだ交換台リスト（Ｈ１〜Ｈ６）のうちのツール交換台Ｈ１しか選択していないため、ステップＳ３２の判断は否定され、ステップＳ３４に移行する。その後は、ペア特定部１３は、ステップＳ３４以降の処理をツール交換台Ｈ２〜Ｈ６に対して実行し、ステップＳ３２の判断が肯定されると、ステップＳ２２に戻る。
【００４３】
ステップＳ２２に戻ると、ペア特定部１３は、ロボットリスト内の全ロボットを選択したか否かを判断する。ここでは、まだロボットＲ２を選択していないため、判断は否定され、ステップＳ２４に移行する。ステップＳ２４に移行すると、ペア特定部１３は、未選択のロボットＲ２を選択し、ロボットＲ２について、ロボットＲ１の場合と同様にしてステップＳ２６以降の処理を実行する。そして、再度ステップＳ２２に戻り、ステップＳ２２の判断が肯定されると、図７、図８の全処理が終了することになる。
【００４４】
なお、本実施形態では、一例として、図９に示すツールとツール交換台の関係表において「〇」を付して示すペアがパターン列挙部１４に出力されたものとする。図９において〇印で示すツールとツール交換台のペアは、各ロボットが作業において使用する各ツールを配置することができるツール交換台を意味している。
【００４５】
（ステップＳ１２の処理について）
次に、ステップＳ１２の処理について説明する。ステップＳ１２においては、パターン列挙部１４が、図１０、図１１のフローチャートに沿って、ツール配置パターンテーブル（図１４参照）を生成する処理を実行する。
【００４６】
図１０の処理では、まず、ステップＳ１００において、パターン列挙部１４は、ツールとツール交換台のペアをツールごとにまとめてペアリストに格納する。すなわち、図９において〇印で示すツールとツール交換台のペアをツールごとにまとめて、図１２（ａ）に示すようなペアリストに格納する。
【００４７】
次いで、ステップＳ１０２では、パターン列挙部１４が、ペアを保存するためのバッファを用意する。
【００４８】
次いで、ステップＳ１０４では、パターン列挙部１４が、ペアリスト（図１２（ａ））に含まれるツールを取得し、ツールリストに格納する。ここでは、ツールＴ１〜Ｔ５が図１２（ｂ）に示すようなツールリストに格納されたものとする。
【００４９】
次いで、ステップＳ１０６では、パターン列挙部１４は再帰処理のサブルーチンを実行する。ステップＳ１０６では、図１１のフローチャートに沿った処理を実行する。
【００５０】
図１１の処理では、まず、ステップＳ１１０において、パターン列挙部１４が、ツールリストの先頭のツールを選択し、ツールリストから除外する。この場合、図１２（ｂ）のツールリストの先頭のツールＴ１が選択され、ツールリストは、図１２（ｃ）に示すようになる。
【００５１】
次いで、ステップＳ１１２では、パターン列挙部１４が、ペアリストから選択しているツールに対応するツール交換台の全てを交換台リストに登録する。この場合、交換台リストは、図１２（ｄ）に示すようになる。
【００５２】
次いで、ステップＳ１１４では、パターン列挙部１４が、交換台リストの全てを選択し終えたか否かを判断する。このステップＳ１１４の判断が否定されると、ステップＳ１１６に移行する。
【００５３】
次いで、ステップＳ１１６では、パターン列挙部１４が、交換台リストから未選択のツール交換台を選択する。ここでは、図１２（ｄ）の交換台リストからツール交換台Ｈ１が選択されたものとする。
【００５４】
次いで、ステップＳ１１８では、パターン列挙部１４が、バッファに選択している交換台が格納されているか否かを判断する。このステップＳ１１８の判断が否定されると、ステップＳ１２０に移行する。
【００５５】
ステップＳ１２０に移行すると、パターン列挙部１４は、バッファに選択しているツールと選択している交換台のペアを格納する。ここでは、図１２（ｅ）に示すように、ツールＴ１とツール交換台Ｈ１のペアがバッファに格納される。
【００５６】
次いで、ステップＳ１２２では、パターン列挙部１４が、ツールリストが空か否かを判断する。ここでは、ツールリストが図１２（ｃ）のように空ではないため、ステップＳ１２２の判断が否定される。ステップＳ１２２の判断が否定されると、パターン列挙部１４は、ステップＳ１２４に移行する。
【００５７】
ステップＳ１２４では、パターン列挙部１４は、再帰処理を実行する。すなわち、ペアリスト、ツールリスト、バッファをそのままの状態に維持して、図１１の処理を実行する。この処理により、ツールＴ２が選択されるとともに、ツールリストからツールＴ２が除外され（Ｓ１１０）、ツールＴ２に対応するツール交換台Ｈ４が交換台リストに登録される（Ｓ１１２）。そして、ツールＴ２とツール交換台Ｈ４のペアがバッファに格納され（Ｓ１２０、図１２（ｆ）参照）、ステップＳ１２２の判定が否定された後、再度ステップＳ１２４に移行する。
【００５８】
その後、再帰処理（Ｓ１２４）を繰り返すことで、バッファには、図１３（ａ）に示すように、各ツールＴ１〜Ｔ５に対応する交換台の情報が登録される。この場合、ステップＳ１２２の判断が肯定されるため、パターン列挙部１４は、ステップＳ１２６に移行する。ステップＳ１２６では、パターン列挙部１４は、図１３（ａ）に示すバッファ内の情報を図１４に示すツール配置パターンテーブルに格納する（図１４のパターン１参照）。そして、ステップＳ１２８に移行すると、パターン列挙部１４は、バッファから選択しているツールと選択しているツール交換台のペアを除外する。すなわち、パターン列挙部１４は、図１３（ｂ）に示すように、バッファからツールＴ５とツール交換台Ｈ２のペアを除外する。
【００５９】
その後は、ステップＳ１１４に戻り、パターン列挙部１４は、ステップＳ１１６において未選択のツール交換台Ｈ５を選択する。この場合、選択したツール交換台Ｈ５はバッファにすでに格納されている（図１３（ｂ）のツールＴ４参照）ため、ステップＳ１１８の判断が肯定されて、ステップＳ１１４に戻る。そして、パターン列挙部１４は、ステップＳ１１４：否定を経て、再度ステップＳ１１６に移行し、未選択のツール交換台Ｈ６を選択する。この場合、選択したツール交換台Ｈ６はバッファに格納されていないため（図１３（ｂ）参照）ため、ステップＳ１１８の判断が否定されて、ステップＳ１２０に移行する。この場合、パターン列挙部１４は、図１３（ｃ）に示すように、バッファに選択しているツールＴ５とツール交換台Ｈ６のペアを格納し（Ｓ１２０）、ステップＳ１２２（否定）を経て、ステップＳ１２６に移行する。そして、ステップＳ１２６では、パターン列挙部１４は、図１３（ｃ）に示すバッファ内の情報を図１４に示すツール配置パターンテーブルに格納する（図１４のパターン２参照）。
【００６０】
以降は、上述した処理を繰り返すことで、図１４に示すように、ツールを配置可能なツール交換台の組み合わせの全パターンの情報（パターン１〜パターン６の情報）がツール配置パターンテーブルに格納されるようになっている。なお、図１１の処理が実行されている間にステップＳ１１４の判断が肯定された場合には、パターン列挙部１４は、ステップＳ１３０に移行する。そして、パターン列挙部１４は、ステップＳ１３０において、ツールリストの先頭に選択しているツールを入れた後、再帰処理のサブルーチンを終え、元の処理に戻るようになっている。
【００６１】
以上の図１０、図１１の処理により生成された、図１４に示すツール配置パターンテーブルは、パターン列挙部１４から最適パターン決定部１６に送信される。
【００６２】
ここで、図１５（ａ）〜１５（ｃ）、図１６（ａ）〜図１６（ｃ）は、図１４に示すツール配置パターン（パターン１〜６）を模式的に示した図である。
【００６３】
（ステップＳ１４の処理について）
次に、ステップＳ１４の処理について説明する。ステップＳ１４においては、最適パターン決定部１６が、図１７のフローチャートに沿って、ツール配置パターンごとに、干渉領域作業時間を算出する処理を実行する。ここで、干渉領域作業時間とは、図１８（ａ）において破線枠で示す干渉領域（ロボットＲ１とロボットＲ２が衝突する可能性のある領域）で各ロボットが作業する時間を意味する。なお、一方のロボットが干渉領域で作業を実行する間は、他方のロボットは干渉領域内に入ることはできないものとする。したがって、一方のロボットが干渉領域で作業を実行する間は、他方のロボットは干渉領域外で待機するか、干渉領域外で行える作業を実行する。
【００６４】
図１７の処理では、まずステップＳ２００において、最適パターン決定部１６は、ツール配置パターンテーブル（図１４）を読み込む。次いで、ステップＳ２０２では、最適パターン決定部１６が、読み込んだテーブル内の全パターンを選択したか否かを判断する。このステップＳ２０２の判断が否定されると、ステップＳ２０４に移行する。
【００６５】
ステップＳ２０４に移行すると、最適パターン決定部１６は、図１４のツール配置パターンテーブル内の未選択パターンを選択する。ここでは、一例として、「パターン１」が選択されたものとする。
【００６６】
次いで、ステップＳ２０６では、最適パターン決定部１６が、合計時間を示すパラメータ「time」を０に設定する。次いで、ステップＳ２０８では、最適パターン決定部１６が、図５に示す標準動作パターンシーケンスを取得する。
【００６７】
次いで、ステップＳ２１０では、最適パターン決定部１６が、標準動作パターンシーケンスに含まれる全動作についての処理が完了したか否かを判断する。このステップＳ２１０の判断が否定されると、ステップＳ２１２に移行し、最適パターン決定部１６は、未処理の作業を選択する。ここでは、作業１が選択されたものとする。
【００６８】
次いで、ステップＳ２１４では、最適パターン決定部１６が、選択した作業に関する標準動作パターンシーケンスに記述された情報と作業領域の３Ｄモデルから、選択した作業に含まれる各動作の教示点を導出する。この場合、図５では不図示であるが、標準動作パターンシーケンスには、各作業に含まれる各動作の具体的な内容（どの位置からどの位置まで移動するのかなど）が記述されているため、最適パターン決定部１６は、３Ｄモデルを用いることで、各動作の始点と終点の座標を導出することができる。次いで、ステップＳ２１６では、最適パターン決定部１６が、導出した教示点に基づいて移動経路を作成する。次いで、ステップＳ２１８では、最適パターン決定部１６が、各経路が干渉領域に関わっているかをチェックし、干渉動作を抽出する。図１８（ａ）には、作業１に含まれる干渉動作（干渉領域に関わる動作）が太線矢印にて示されている。
【００６９】
次いで、ステップＳ２２０では、最適パターン決定部１６が、抽出した干渉動作の合計時間（干渉領域作業時間）を計算し、timeに加算する。この場合の干渉領域作業時間Ｔは、太線矢印で示されている移動距離Ｌと、ロボットの速度Ｖ、及びロボットの干渉領域内での動作時間ｔｒとを用いて、次式（１）から求めることができる。なお、移動距離Ｌは、各干渉動作の始点と終点との間の距離の合計とすることができる。
Ｔ＝（Ｌ／Ｖ）＋ｔｒ      …（１）
【００７０】
その後は、ステップＳ２１０に戻る。ステップＳ２１０に戻ると、ステップＳ２１０の判断が肯定されるまで、すなわち全動作についての処理が完了するまで、ステップＳ２１２〜Ｓ２２０の処理を繰り返し実行する。これにより、図１８（ｂ）に示すように、各作業の干渉領域作業時間が求められるとともに、選択しているパターン（パターン１）に含まれる全作業における干渉領域作業時間（合計）＝time（図１８（ｂ）では２０．８秒）を求めることができる。
【００７１】
そして、ステップＳ２１０の判断が肯定された場合には、最適パターン決定部１６は、ステップＳ２２２に移行する。ステップＳ２２２に移行すると、最適パターン決定部１６は、パターンとtimeのペアを干渉領域作業時間テーブルに格納する。図１８（ｂ）の例では、パターン１と、２０．８秒のペアが、干渉領域作業時間テーブル（図１９の１行目参照）に格納されることになる。
【００７２】
その後は、ステップＳ２０２に戻り、ステップＳ２０２の判断が肯定されるまで、すなわち、全パターンの干渉領域作業時間（合計）＝timeが算出されるまで、ステップＳ２０４以降の処理が繰り返し実行される。そして、ステップＳ２０２の判断が肯定された段階で、図１７の全処理が終了する。
【００７３】
図１７の全処理が終了した段階では、図１９に示すように干渉領域作業時間テーブルにパターン１〜６の干渉領域作業時間（合計）が格納されることになる。
【００７４】
（ステップＳ１６の処理について）
次に、ステップＳ１６の処理について説明する。ステップＳ１６においては、最適パターン決定部１６が、図２０のフローチャートに沿って、ツール配置パターンの中から最適なツール配置パターンを決定する処理を実行する。
【００７５】
図２０の処理では、まず、ステップＳ３００において、最適パターン決定部１６が、干渉領域作業時間テーブル（図１９参照）の各行を時間が短い順に並べ替える。並べ替え後の干渉領域作業時間テーブルが、図２１（ａ）に示されている。
【００７６】
次いで、ステップＳ３０２では、最適パターン決定部１６が、Resultを用意し、ResultTimeを∞に設定する。
【００７７】
次いで、ステップＳ３０４では、最適パターン決定部１６が、干渉領域作業時間テーブル内の全パターンを選択したか否かを判断する。このステップＳ３０４の判断が否定された場合には、ステップＳ３０６に移行し、最適パターン決定部１６は、干渉領域作業時間テーブルの先頭のパターンを取得し、干渉領域作業時間テーブルから削除する。ここでは、図２１（ａ）の干渉領域作業時間テーブルからパターン３、干渉領域作業時間＝２０．２秒が取得され、取得した情報を干渉領域作業時間テーブルから削除したとする（図２１（ｂ）参照）。
【００７８】
次いで、ステップＳ３０８では、最適パターン決定部１６が、取得したパターンの干渉領域作業時間がResultTime以上か否かを判断する。ここでは、ResultTimeは、∞であるので、ステップＳ３０８の判断は否定され、最適パターン決定部１６は、ステップＳ３１０に移行する。
【００７９】
ステップＳ３１０に移行すると、最適パターン決定部１６は、取得したパターンのツール配置で、全作業時間（全作業が完了するまでの時間）を算出する。この場合、従来から知られている山積み表を用いた方法により、全作業時間を算出する。なお、本実施形態では、図２２（ａ）に示すように、パターン３の全作業時間は２４．０秒であったとする。
【００８０】
次いで、ステップＳ３１２では、最適パターン決定部１６が、算出した全作業時間がResultTimeよりも短いか否かを判断する。ここでは、ResultTimeは∞であるので、ステップＳ３１２の判断は肯定され、最適パターン決定部１６は、ステップＳ３１４に移行する。
【００８１】
ステップＳ３１４に移行すると、最適パターン決定部１６は、図２２（ａ）に示すように、Resultを選択しているパターン（パターン３）とし、ResultTimeを算出した全作業時間（２４．０秒）とする。すなわち、ステップＳ３１４では、これまでに算出された全作業時間が最も短いパターンをResultとし、そのパターンにおける全作業時間をResultTimeとしている。その後は、ステップＳ３０４に戻る。
【００８２】
ステップＳ３０４に戻り、ステップＳ３０４の判断が否定され、ステップＳ３０６に移行すると、最適パターン決定部１６は、図２１（ｂ）の干渉領域作業時間テーブルの先頭のパターン（パターン１）とパターン１の干渉領域作業時間＝２０．８秒を取得し、図２１（ｂ）からパターン１の情報を削除する。そして、ステップＳ３０８では、最適パターン決定部１６が、取得したパターン１の干渉領域作業時間がResultTime以上か否かを判断する。ここでは、図２２（ａ）に示すように、ResultTimeは、２４．０秒であり、パターン１の干渉領域作業時間が２０．８秒であるので、ステップＳ３０８の判断は否定され、最適パターン決定部１６は、ステップＳ３１０に移行する。
【００８３】
ステップＳ３１０に移行すると、最適パターン決定部１６は、取得したパターン１のツール配置で、全作業時間を算出する。本実施形態では、図２２（ｂ）に示すように、パターン１の全作業時間は２３．９秒であったとする。
【００８４】
次いで、ステップＳ３１２では、最適パターン決定部１６が、算出した全作業時間がResultTimeよりも短いか否かを判断する。ここでは、算出した全作業時間が２３．９秒であり、ResultTimeが２４．０秒あるので、ステップＳ３１２の判断は肯定され、最適パターン決定部１６は、ステップＳ３１４に移行する。
【００８５】
ステップＳ３１４に移行すると、最適パターン決定部１６は、Resultを選択しているパターン（パターン１）とし、ResultTimeを算出した全作業時間（２３．９秒）とする（図２２（ｂ）参照）。その後は、ステップＳ３０４に戻る。
【００８６】
ステップＳ３０４に戻り、ステップＳ３０４の判断が否定され、ステップＳ３０６に移行すると、最適パターン決定部１６は、干渉領域作業時間テーブルの先頭のパターン（ここではパターン６）とパターン６の干渉領域作業時間＝２２．７秒を取得し、干渉領域作業時間テーブルからパターン６の情報を削除する。そして、ステップＳ３０８では、最適パターン決定部１６が、取得したパターンの干渉領域作業時間がResultTime以上か否かを判断する。ここでは、ResultTimeは、２３．９秒であり、干渉領域作業時間が２２．７秒であるので、ステップＳ３０８の判断は否定され、最適パターン決定部１６は、ステップＳ３１０に移行する。
【００８７】
ステップＳ３１０に移行すると、最適パターン決定部１６は、取得したパターンのツール配置で、全作業時間を算出する。本実施形態では、図２３（ａ）に示すように、パターン６の全作業時間は２５．２秒であったとする。
【００８８】
次いで、ステップＳ３１２では、最適パターン決定部１６が、算出した全作業時間がResultTimeよりも短いか否かを判断する。ここでは、算出した全作業時間が２５．２秒であり、ResultTimeが２３．９秒あるので、ステップＳ３１２の判断は否定され、最適パターン決定部１６は、ステップＳ３０４に戻る。この場合、Resultはパターン１のまま維持され、ResultTimeは２３．９秒のまま維持される（図２３（ａ）参照）。
【００８９】
なお、次のパターン２についても、パターン６の場合と同様に全作業時間が計算されるものの、ステップＳ３１２の判断が否定されるため、Resultはパターン１のまま維持され、ResultTimeは２３．９秒のまま維持される。
【００９０】
その後、再度ステップＳ３０４に戻ると、ステップＳ３０４の判断は否定され、ステップＳ３０６に移行する。ステップＳ３０６では、最適パターン決定部１６は、干渉領域作業時間テーブルの先頭のパターン（ここではパターン４）とパターン４の干渉領域作業時間＝２４．０秒を取得し、干渉領域作業時間テーブルからパターン４の情報を削除する。そして、ステップＳ３０８では、最適パターン決定部１６が、取得したパターンの干渉領域作業時間がResultTime以上か否かを判断する。ここでは、図２３（ｂ）に示すように、ResultTimeは、２３．９秒であり、パターン４の干渉領域作業時間が２４．０秒であるので、ステップＳ３０８の判断は肯定され、最適パターン決定部１６は、ステップＳ３１６に移行する。
【００９１】
ステップＳ３１６に移行すると、最適パターン決定部１６は、Resultを出力する。ここでは、最適パターン決定部１６は、これまでに算出した全作業時間が最も短いパターン１を出力することになる。なお、最適パターン決定部１６は、パターン１を出力する場合、例えば表示部９３を介してパターン１のツール配置をユーザに対して表示する。また、最適パターン決定部１６は、パターン１を出力する場合、ロボット動作プログラムを生成する装置に対してパターン１のツール配置を通知することもできる。パターン１のツール配置を受信した装置では、作業に使用するツールがどの位置に配置されるかを考慮して、適切なロボット動作プログラムを生成することができる。
【００９２】
以上のように、本実施形態では、図２０の処理を実行することで、１つのパターンの干渉領域作業時間（合計）はそのパターンの全作業時間よりも必ず短くなることを利用して、不要な全作業時間の算出をしないようにしている（Ｓ３０８：肯定）。これにより、上記例では、パターン４以降の全作業時間の算出処理を省略することができるので、処理量の低減及び処理時間の短縮を図ることが可能となっている。
【００９３】
なお、図２０のステップＳ３０４の判断が肯定された場合、すなわち、途中でステップＳ３０８の判断が肯定されず、全パターンの全作業時間を算出した場合にも、ステップＳ３１６に移行する。ステップＳ３１６に移行した場合、最適パターン決定部１６は、Result（これまでに算出した全作業時間のうち最も短い全作業時間に対応するパターン）を出力する。
【００９４】
これまでの説明から明らかなように、本実施形態では、ペア特定部１３と、パターン列挙部１４とにより、標準動作パターンシーケンスと、作業領域５０の３Ｄモデルと、に基づいて、ツールそれぞれを配置可能なツール交換台の組み合わせを示すツール配置パターンを複数生成する生成部としての機能が実現されている。また、本実施形態では、最適パターン決定部１６により、複数のツール配置パターンそれぞれを採用した場合における、各ロボットの干渉領域作業時間（合計）を算出する算出部、算出した干渉領域作業時間に基づいて最適なツール配置パターンを決定する決定部としての機能が実現されている。
【００９５】
以上、詳細に説明したように、本実施形態によると、ペア特定部１３及びパターン列挙部１４は、２つのロボットＲ１，Ｒ２に割り当てられた作業の内容及び各作業で使用するツールの情報を記述した標準動作パターンシーケンス（図５）と、作業領域５０の３Ｄモデルとに基づいて、ツールとツールを配置可能なツール交換台の組み合わせを示すツール配置パターンを複数生成する（Ｓ１１、Ｓ１２）。また、最適パターン決定部１６は、複数のツール配置パターンそれぞれを採用した場合における、各ロボットＲ１、Ｒ２の干渉領域作業時間（合計）をロボットＲ１，Ｒ２の干渉領域内の移動距離から算出し（Ｓ１４）、算出した干渉領域作業時間に基づいてツール配置パターンを決定する（Ｓ１６）。これにより、本実施形態では、干渉領域作業時間（合計）が短くなる適切なツール配置パターンを決定し、出力することができる。
【００９６】
また、本実施形態では、最適パターン決定部１６は、複数のツール配置パターンそれぞれを採用した場合における全作業時間を算出し、干渉領域作業時間（合計）と全作業時間とに基づいて、ツールの配置を決定することとしている。これにより、ツール配置として、干渉領域作業時間（合計）と全作業時間を考慮した適切なツール配置を出力することができる。
【００９７】
また、本実施形態では、最適パターン決定部１６は、ツール配置パターンを干渉領域作業時間が短い順に選択して全作業時間を算出する（Ｓ３１４）。そして、最適パターン決定部１６は、次に全作業時間を算出するツール配置パターンの干渉領域作業時間が、既に算出した全作業時間のいずれかよりも長い場合（Ｓ３０８：肯定）に、既に算出した全作業時間が最短のツール配置パターンを出力する（Ｓ３１６）。これにより、無駄な処理（計算）を行わずに、適切なツール配置パターンを出力することができる。
【００９８】
また、本実施形態では、ペア特定部１３は、３Ｄモデルに基づいて、各ロボットが各ツールをツール交換台の周辺の他部品に衝突させずにツール交換台に置くことができ（Ｓ４８：否定）、かつ各ロボットがツールを着脱する際に無理な姿勢をとることがない（Ｓ３８：肯定）という条件を満たす、ツールとツール交換台のペアを出力する（Ｓ５０）。これにより、機械的、物理的に組み合わせることができないツールとツール交換台とのペアを予め除外することができるため、ツールとツール交換台のペアを全通り出力する場合と比べ、ステップＳ１２以降の処理を簡素化することができる。
【００９９】
なお、上記実施形態では、干渉領域作業時間（合計）と全作業時間とに基づいて適切なツール配置パターンを決定する場合について説明したが、これに限られるものではない。例えば、干渉領域作業時間（合計）のみに基づいて、複数のツール配置パターンの中から適切なツール配置パターンを決定するようにしてもよい。例えば、最適パターン決定部１６は、図１９の干渉領域作業時間テーブルを参照して、干渉領域作業時間（合計）が最も短いパターンを出力するツール配置パターンとして決定してもよい。
【０１００】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記憶媒体（ただし、搬送波は除く）に記録しておくことができる。
【０１０１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記憶媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０２】
プログラムを実行するコンピュータは、例えば、可搬型記憶媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記憶媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０３】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０１０４】
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
（付記１）  第１ロボットと第２ロボットに割り当てられた作業の内容及び各作業で前記第１、第２ロボットが使用するツールの情報を記述した作業データと、前記第１、第２ロボット及び複数のツール交換台の配置及び形状に関する情報と、に基づいて、前記各作業で使用するツールそれぞれを配置可能なツール交換台の組み合わせパターンを複数生成する生成部と、
前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットが干渉する領域での前記第１、第２ロボットの動作時間を前記干渉する領域における前記第１、第２ロボットの移動距離に基づいて算出し、算出した前記第１、第２ロボットの動作時間の和を干渉領域作業時間として算出する算出部と、
前記干渉領域作業時間に基づいて、前記複数の組み合わせパターンのいずれかを選択して、各ツールを配置するツール交換台を決定する決定部と、
を備える情報処理装置。
（付記２）  前記算出部は、前記干渉する領域における前記第１、第２ロボットの移動距離を、前記作業データと前記配置及び形状に関する情報とから算出する、ことを特徴とする付記１に記載の情報処理装置。
（付記３）  前記算出部は、前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットに割り当てられた全ての作業が完了するまでの全作業時間を算出し、
前記決定部は、前記干渉領域作業時間と前記全作業時間とに基づいて、前記複数の組み合わせパターンのいずれかを選択する、ことを特徴とする付記１又は２に記載の情報処理装置。
（付記４）  前記算出部は、前記複数の組み合わせパターンを前記干渉領域作業時間が短い順に選択して、前記全作業時間を算出し、
前記決定部は、前記算出部が次に選択する組み合わせパターンの前記干渉領域作業時間が、前記算出部が既に算出した前記全作業時間のいずれかよりも長い場合に、既に算出した前記全作業時間が最短の組み合わせパターンを選択する、ことを特徴とする付記３に記載の情報処理装置。
（付記５）  前記生成部は、前記配置及び形状に関する情報に基づいて、前記第１ロボット又は前記第２ロボットが各ツールを他部品に衝突させずに前記ツール交換台に置くことができ、かつ前記第１ロボット又は前記第２ロボットが各ツールを着脱する際に無理な姿勢をとることがないという条件を満たす組み合わせパターンを複数生成する、ことを特徴とする付記１〜４のいずれかに記載の情報処理装置。
（付記６）  第１ロボットと第２ロボットに割り当てられた作業の内容及び各作業で前記第１、第２ロボットが使用するツールの情報を記述した作業データと、前記第１、第２ロボット及び複数のツール交換台の配置及び形状に関する情報と、に基づいて、前記各作業で使用するツールそれぞれを配置可能なツール交換台の組み合わせパターンを複数生成し、
前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットが干渉する領域での前記第１、第２ロボットの動作時間を前記干渉する領域における前記第１、第２ロボットの移動距離に基づいて算出し、算出した前記第１、第２ロボットの動作時間の和を干渉領域作業時間として算出し、
前記干渉領域作業時間に基づいて、前記複数の組み合わせパターンのいずれかを選択して、各ツールを配置するツール交換台を決定する、
処理をコンピュータに実行させるためのツール位置決定プログラム。
（付記７）  前記算出する処理では、前記干渉する領域における前記第１、第２ロボットの移動距離を、前記作業データと前記配置及び形状に関する情報とから算出する、ことを特徴とする付記６に記載のツール位置決定プログラム。
（付記８）  前記算出する処理では、前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットに割り当てられた全ての作業が完了するまでの全作業時間を算出し、
前記決定する処理では、前記干渉領域作業時間と前記全作業時間とに基づいて、前記複数の組み合わせパターンのいずれかを選択する、ことを特徴とする付記６又は７に記載のツール位置決定プログラム。
（付記９）  前記算出する処理では、前記複数の組み合わせパターンを前記干渉領域作業時間が短い順に選択して、前記全作業時間を算出し、
前記決定する処理では、前記算出する処理で次に選択する組み合わせパターンの前記干渉領域作業時間が、既に算出した前記全作業時間のいずれかよりも長い場合に、既に算出した前記全作業時間が最短の組み合わせパターンを選択する、ことを特徴とする付記８に記載のツール位置決定プログラム。
（付記１０）  前記生成する処理では、前記配置及び形状に関する情報に基づいて、前記第１ロボット又は前記第２ロボットが各ツールを他部品に衝突させずに前記ツール交換台に置くことができ、かつ前記第１ロボット又は前記第２ロボットが各ツールを着脱する際に無理な姿勢をとることがないという条件を満たす組み合わせパターンを複数生成する、ことを特徴とする付記６〜９のいずれかに記載のツール位置決定プログラム。
（付記１１）  第１ロボットと第２ロボットに割り当てられた作業の内容及び各作業で前記第１、第２ロボットが使用するツールの情報を記述した作業データと、前記第１、第２ロボット及び複数のツール交換台の配置及び形状に関する情報と、に基づいて、前記各作業で使用するツールそれぞれを配置可能なツール交換台の組み合わせパターンを複数生成し、
前記複数の組み合わせパターンそれぞれを採用した場合における、前記第１、第２ロボットが干渉する領域での前記第１、第２ロボットの動作時間を前記干渉する領域における前記第１、第２ロボットの移動距離に基づいて算出し、算出した前記第１、第２ロボットの動作時間の和を干渉領域作業時間として算出し、
前記干渉領域作業時間に基づいて、前記複数の組み合わせパターンのいずれかを選択して、各ツールを配置するツール交換台を決定する、
処理をコンピュータが実行することを特徴とするツール位置決定方法。
【符号の説明】
【０１０５】
１０  ツール位置決定装置（情報処理装置）
１３  ペア特定部（生成部の一部）
１４  パターン列挙部（生成部の一部）
１６  最適パターン決定部（算出部、決定部）
Ｈ１〜Ｈ６  ツール交換台
Ｒ１、Ｒ２  ロボット（第１ロボット、第２ロボット）
Ｔ１〜Ｔ５  ツール
【図１】
2020066065.tif 000003
【図２】
2020066065.tif 000004
【図３】
2020066065.tif 000005
【図４】
2020066065.tif 000006
【図５】
2020066065.tif 000007
【図６】
2020066065.tif 000008
【図７】
2020066065.tif 000009
【図８】
2020066065.tif 000010
【図９】
2020066065.tif 000011
【図１０】
2020066065.tif 000012
【図１１】
2020066065.tif 000013
【図１２】
2020066065.tif 000014
【図１３】
2020066065.tif 000015
【図１４】
2020066065.tif 000016
【図１５】
2020066065.tif 000017
【図１６】
2020066065.tif 000018
【図１７】
2020066065.tif 000019
【図１８】
2020066065.tif 000020
【図１９】
2020066065.tif 000021
【図２０】
2020066065.tif 000022
【図２１】
2020066065.tif 000023
【図２２】
2020066065.tif 000024
【図２３】
2020066065.tif 000025