(57)【要約】【課題】２つのロボットに割り当てた作業の適切な作業順を短時間で決定する【解決手段】作業計画策定部は、第１ロボットに割り当てられた第１作業と、第２ロボットに割り当てられた第２作業の実施場所が重複する可能性があるか判断し（Ｓ２６）、第１作業と第２作業の実施場所が重複する可能性がある場合に、第１作業と第２作業の実施場所が重複しないように第１作業を遅らせた第１作業順を採用した場合の第１、第２作業全ての終了時刻と、第１作業と第２作業の実施場所が重複しないように第２作業を遅らせた第２作業順を採用した場合の第１、第２作業全ての終了時刻と、を比較し、第１作業順と第２作業順のうち、第１、第２作業全ての終了時刻が早い方の作業順を第１作業と第２作業の作業順として決定する（Ｓ３０）。【選択図】図５
2019212023.tif 000002
【特許請求の範囲】
【請求項１】
第１ロボットに割り当てられた第１作業と、第２ロボットに割り当てられた第２作業の実施場所が重複する可能性があるか判断する判断部と、
前記第１作業と前記第２作業の実施場所が重複する可能性がある場合に、前記第１作業と前記第２作業の実施場所が重複しないように前記第１作業を遅らせた第１作業順を採用した場合の前記第１、第２作業全ての終了時刻と、前記第１作業と前記第２作業の実施場所が重複しないように前記第２作業を遅らせた第２作業順を採用した場合の前記第１、第２作業全ての終了時刻と、を比較する比較部と、
前記第１作業順と前記第２作業順のうち、前記第１、第２作業全ての終了時刻が早い方の作業順を前記第１作業と前記第２作業の作業順として決定する決定部と、
を備える情報処理装置。
【請求項２】
前記第１作業及び前記第２作業は、前記第１ロボットと前記第２ロボットが共に利用する干渉領域での動作を１つ実行した後に前記干渉領域以外の非干渉領域での動作を１又は複数実行する作業、前記干渉領域での動作を１つのみ実行する作業、前記非干渉領域での動作のみを実行する作業、のいずれかであることを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
第１ロボットに割り当てられた第１作業と、第２ロボットに割り当てられた第２作業の実施場所が重複する可能性があるか判断し、
前記第１作業と前記第２作業の実施場所が重複する可能性がある場合に、前記第１作業と前記第２作業の実施場所が重複しないように前記第１作業を遅らせた第１作業順を採用した場合の前記第１、第２作業全ての終了時刻と、前記第１作業と前記第２作業の実施場所が重複しないように前記第２作業を遅らせた第２作業順を採用した場合の前記第１、第２作業全ての終了時刻と、を比較し、
前記第１作業順と前記第２作業順のうち、前記第１、第２作業全ての終了時刻が早い方の作業順を前記第１作業と前記第２作業の作業順として決定する、
処理をコンピュータに実行させるための作業計画プログラム。
【請求項４】
第１ロボットに割り当てられた第１作業と、第２ロボットに割り当てられた第２作業の実施場所が重複する可能性があるか判断し、
前記第１作業と前記第２作業の実施場所が重複する可能性がある場合に、前記第１作業と前記第２作業の実施場所が重複しないように前記第１作業を遅らせた第１作業順を採用した場合の前記第１、第２作業全ての終了時刻と、前記第１作業と前記第２作業の実施場所が重複しないように前記第２作業を遅らせた第２作業順を採用した場合の前記第１、第２作業全ての終了時刻と、を比較し、
前記第１作業順と前記第２作業順のうち、前記第１、第２作業全ての終了時刻が早い方の作業順を前記第１作業と前記第２作業の作業順として決定する、
処理をコンピュータが実行することを特徴とする作業計画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、作業計画プログラム及び作業計画方法に関する。
【背景技術】
【０００２】
従来、製品の組立を行う組立ラインの各工程へ作業を割り当てる作業編成（作業計画）を行う場合、各工程における作業順序の遵守や作業量の平準化などを考慮して最適化を行っている。この最適化処理は、手作業では困難なことから、情報処理装置が、様々なアルゴリズムを用いて人（作業者）やロボットなどの自動機に対して作業を割り当て、それぞれの作業負荷を負荷表（山積み表）で表して設計者に提示している。
【０００３】
ライン生産において汎用ロボットシステムが用いられる場合、ロボットで実行される作業の種類や作業量が多いため、情報処理装置は、人の負荷のみならず、人とロボット間の負荷バランスも調整しなければならない。また、ノートＰＣ（Personal Computer）の組立作業に代表される、ケーブルフォーミング等の複雑な工程を含む組立作業では、複数アームを必要とする作業（協調作業）と１つのアームのみで足りる作業（単腕作業）が混在する場合があるため、情報処理装置は、この点についても考慮して作業編成を行う必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−０３９９０９号公報
【特許文献２】特開２０１３−２１８６４４号公報
【特許文献３】特開平１１−１３４３９２号公報
【特許文献４】特開２０１４−１２３２２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したような複雑な組立作業を汎用ロボットシステムで実施する場合、情報処理装置は、近接配置された各アームに単腕作業を割り当てたり、複数のアームに協調作業を割り当てる必要がある。また、情報処理装置は、アーム間の干渉有無や、無駄な動作停止が無いように、各アームに割り当てた作業の作業順を決定する必要がある。適切な作業順を決定するためには最適化計算を用いることも可能ではあるが、最適化計算は計算量が多くなるため、処理に長時間を要するおそれがある。
【０００６】
１つの側面では、本発明は、２つのロボットに割り当てた作業の適切な作業順を短時間で決定することができる情報処理装置、作業計画プログラム及び作業計画方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、情報処理装置は、第１ロボットに割り当てられた第１作業と、第２ロボットに割り当てられた第２作業の実施場所が重複する可能性があるか判断する判断部と、前記第１作業と前記第２作業の実施場所が重複する可能性がある場合に、前記第１作業と前記第２作業の実施場所が重複しないように前記第１作業を遅らせた第１作業順を採用した場合の前記第１、第２作業全ての終了時刻と、前記第１作業と前記第２作業の実施場所が重複しないように前記第２作業を遅らせた第２作業順を採用した場合の前記第１、第２作業全ての終了時刻と、を比較する比較部と、前記第１作業順と前記第２作業順のうち、前記第１、第２作業全ての終了時刻が早い方の作業順を前記第１作業と前記第２作業の作業順として決定する決定部と、を備えている。
【発明の効果】
【０００８】
２つのロボットに割り当てた作業の適切な作業順を短時間で決定することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る情報処理装置のハードウェア構成を示す図である。
【図２】情報処理装置の機能ブロック図である。
【図３】作業ＤＢを示す図である。
【図４】一実施形態に係るロボットシステムを示す図である。
【図５】作業計画策定部によるロボットシステムにおける各動作の開始時刻の決定処理を示すフローチャートである。
【図６】作業リストに格納されている作業を示す図である。
【図７】図７（ａ）〜図７（ｃ）は、図５の処理を説明するための図（その１）である。
【図８】図８（ａ）、図８（ｂ）は、図５の処理を説明するための図（その２）である。
【図９】図９（ａ）、図９（ｂ）は、図５の処理を説明するための図（その３）である。
【図１０】図１０（ａ）、図１０（ｂ）は、図５の処理を説明するための図（その４）である。
【図１１】図５の処理を説明するための図（その５）である。
【図１２】図１２（ａ）、図１２（ｂ）は、図５の処理を説明するための図（その６）である。
【図１３】図１３（ａ）、図１３（ｂ）は、図５の処理を説明するための図（その７）である。
【図１４】図５の処理を説明するための図（その８）である。
【図１５】図５の処理を説明するための図（その９）である。
【図１６】表示画面の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、情報処理装置の一実施形態について、図１〜図１６に基づいて詳細に説明する。本実施形態の情報処理装置１０は、人とロボットシステムとを含む組立ラインにおける作業計画（人やロボットシステムに対する作業の割り当て計画）を生成し、作業計画に関する情報を表示する装置である。
【００１１】
本実施形態において、組立ラインは、ベルトコンベア（不図示）などにより製品を工程から工程へ搬送する。組立ラインの各工程には、人又はロボットシステムが配置される。各工程に配置された人又はロボットシステムは、組立ラインにおいて搬送される製品に対して作業計画により割り当てられた作業を実施して製品を製造する。なお、人やロボットシステムの数は任意である。したがって、ロボットシステムは、１つであってもよいし、複数であってもよい。
【００１２】
図１には、情報処理装置１０のハードウェア構成が示されている。情報処理装置１０は、例えばＰＣなどであり、図１に示すように、コンピュータとしてのＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、ネットワークインタフェース９７、可搬型記憶媒体用ドライブ９９、表示部９３、入力部９５等を備えている。表示部９３は液晶ディスプレイ等を含み、入力部９５は、キーボードやマウス、タッチパネル等を含む。これら情報処理装置１０の構成各部は、バス９８に接続されている。情報処理装置１０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（作業計画プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（作業計画プログラムを含む）をＣＰＵ９０が実行することにより、図２に示す各部の機能が実現される。なお、可搬型記憶媒体９１は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal Serial Bus）メモリ等の可搬型記憶媒体、フラッシュメモリ等の半導体メモリなどである。また、図２の各部の機能は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の集積回路により実現されてもよい。
【００１３】
図２には、情報処理装置１０の機能ブロック図が示されている。図２に示すように、情報処理装置１０は、ＣＰＵ９０がプログラムを実行することで、入力受付部２０、ロボット化作業抽出部２２、作業計画策定部２４、表示制御部２６、として機能する。
【００１４】
入力受付部２０は、作業計画の設計者が入力部９５を介して入力する、組立ラインで実施する必要がある作業の情報を受け付け、作業ＤＢ５０に格納する。作業ＤＢ５０は、図３に示すような各作業の情報を格納するデータベースである。作業は１又は複数の動作を伴うものであり、各作業の情報には、作業を人が行った場合（作業主体＝人）と、ロボットシステムが行った場合（作業主体＝ロボットシステム）のそれぞれについての、動作の情報や作業種、必要な工具の情報などが含まれている。例えば、図３に示す「嵌合作業」の場合、作業主体が人であれば、作業種は単腕作業であり、動作は、「把持」と「嵌合」となる。また、作業に要する時間（動作時間の合計）は５秒となっている。一方、作業主体がロボットシステムであれば、作業種は単腕作業であり、動作は、「Move」、「Pick」、「Transfer」、「Place」、「MoveHome」となる。また、作業に要する時間は８秒となっている。また、これらロボットシステムの動作のうち「Move」、「Transfer」、「Place」は、後述する「干渉領域」での動作（干渉動作と呼ぶ）であり、「Pick」、「MoveHome」は、後述する「非干渉領域」での動作（非干渉動作と呼ぶ）である。
【００１５】
ここで、本実施形態では、ロボットシステムとして、図４に示すような、第１、第２ロボットとしての２つのアームＲ１、Ｒ２を有するロボットシステムＭ１を用いることとしている。アームＲ１の可動領域には、ツール（工具）供給部３２及び部品供給部３４が設けられ、アームＲ２の可動領域には、ツール供給部３６及び部品供給部３８が設けられている。ツール供給部３２、３６においては、アームＲ１、Ｒ２が使用する工具の交換（ツールチェンジ）を行う。また、部品供給部３４、３８においては、アームＲ１、Ｒ２が部品をピックアップする動作（動作「Pick」）を実行する。そして、図４に示す作業領域においては、アームＲ１、Ｒ２がそれぞれ又は協調して、作業を実行する。本実施形態においては、アームＲ１、Ｒ２が協調して作業することもあるため、各アームの可動領域が一部重複している。この重複する領域は、アームＲ１、Ｒ２が干渉する可能性のある「干渉領域」であり、各アームの可動領域のうち干渉領域以外の領域が「非干渉領域」である。本実施形態では、一方のアームが干渉領域で単腕作業（協調作業以外の作業）を行う間は、アーム同士の衝突を避けるため、他方のアームは非干渉動作を行うか、非干渉領域で待機するものとする。
【００１６】
ロボット化作業抽出部２２は、組立ラインで実施される作業の中から、ロボットシステムに割り当てる作業を抽出する。具体的には、ロボット化作業抽出部２２は、組立ラインにおける人とロボットシステムの位置関係や、作業ＤＢ５０の情報（例えば各作業をロボットシステムに割り当てることができるか否かの情報など）等に基づいて、ロボットシステムに割り当てる作業を抽出する。
【００１７】
作業計画策定部２４は、ロボット化作業抽出部２２の抽出結果を利用して、組立ラインの各工程に配置される人やロボットシステムに対して作業を割り当て、作業計画を策定する。このとき、作業計画策定部２４は、種々の評価指標を考慮して、タブーサーチや焼きなまし法などの局所探索法により、人やロボットシステムに作業を割り当てる。評価指標には、例えば、各工程間の時間ばらつき、同一工具を特定の工程に集約できているか否か、予め定められている優先度に従っているか、各作業が順序制約に違反していないかなどのパラメータが含まれる。作業計画策定部２４では、割り当てを仮に決定し、その時の作業割り当ての評価指標を計算することを繰り返し行うことで作業割り当てを決定する。この際、ロボット工程においては作業計画を作成した上で評価指標の計算を行う。作業計画策定部２４は、作業計画を策定する際に、ロボットシステムに割り当てた作業の作業時間が極力短くなるように各アームＲ１、Ｒ２に作業（動作）を割り当て、各作業（動作）の実行順（すなわち各作業（動作）の開始時刻）を決定する。この場合、作業計画策定部２４は、ロボットシステムに割り当てられた各作業が２つのアームＲ１、Ｒ２を用いた協調作業であるか、単腕作業であるかを考慮したり、各動作が干渉動作であるか、非干渉動作であるかを考慮する。
【００１８】
表示制御部２６は、作業計画策定部２４により策定された作業計画に基づいて表示画面を作成し、作成した表示画面を表示部９３に対して表示させる。
【００１９】
（ロボットシステムにおける各動作の開始時刻の決定処理について）
次に、作業計画策定部２４が作業計画を策定する際に実行する、ロボットシステムにおける各動作の開始時刻の決定処理について、図５のフローチャートに沿って、その他図面を適宜参照しつつ詳細に説明する。
【００２０】
図５は、作業計画策定部２４によるロボットシステムにおける各動作の開始時刻の決定処理を示すフローチャートである。この処理の前提として、作業計画策定部２４による、組立ラインの各工程（人やロボットシステム）に対する作業割り当てが完了しているものとする。ロボットシステムに割り当てられた作業の情報は、作業リストに格納される。本実施形態では、一例として、作業リストには、図６に示すような作業Ａ〜Ｅが格納されているものとする。なお、作業Ａ〜Ｅを割り当てる順は、作業Ａ→Ｂ→Ｃ→Ｄ→Ｅであるものとする。
【００２１】
ここで、作業Ａは、単腕作業であって、動作Ａ１、Ａ２、Ａ３を含み、各動作に要する時間は、１秒、３秒、１秒となっている。動作Ａ１〜Ａ３のうち、動作Ａ１、Ａ３は、非干渉領域での動作であるが、動作Ａ２は、干渉領域での動作である。なお、図６の各作業に含まれる各動作は、下から順に（作業Ａであれば、動作Ａ１→Ａ２→Ａ３の順に）実行されるものとする。
【００２２】
作業Ｂは、単腕作業であって、動作Ｂ１、Ｂ２、Ｂ３を含み、各動作に要する時間は、２秒、４秒、１秒となっている。動作Ｂ１〜Ｂ３のうち、動作Ｂ１、Ｂ３は、非干渉領域での動作であるが、動作Ｂ２は、干渉領域での動作である。作業Ｃは、単腕作業であって、動作Ｃ１、Ｃ２、Ｃ３、Ｃ４を含み、各動作に要する時間は、２秒、３秒、２秒、１秒となっている。動作Ｃ１〜Ｃ４のうち、動作Ｃ１、Ｃ４は、干渉領域での動作であるが、動作Ｃ２、Ｃ３は、非干渉領域での動作である。作業Ｄは、協調作業であって、動作Ｄ１、Ｄ２を含み、各動作に要する時間は、１秒、４秒となっている。動作Ｄ１、Ｄ２のうち、動作Ｄ１は、非干渉領域での動作であるが、動作Ｄ２は、干渉領域での動作である。作業Ｅは、単腕作業であって、動作Ｅ１、Ｅ２を含み、各動作に要する時間は、２秒、２秒となっている。動作Ｅ１、Ｅ２のうち、動作Ｅ１は、非干渉領域での動作であるが、動作Ｅ２は、干渉領域での動作である。なお、図６の各作業は、実際には図３の「嵌合作業」などであり、各動作は、実際には図３の「Move」や「Pick」、「Transfer」などであるが、説明の簡素化のため、作業や動作をアルファベットで表している。
【００２３】
作業計画策定部２４は、図５の処理を実行することで、ロボットシステムに割り当てられた図６の各作業を各アームＲ１、Ｒ２に割り当てるとともに、各アームにおける各動作の実行順を決定することで、各動作の開始時刻を決定する。
【００２４】
図５の処理では、まず、ステップＳ１０において、作業計画策定部２４は、次の作業があるか否かを判断する。このステップＳ１０の判断が肯定されると、ステップＳ１２に移行する。
【００２５】
ステップＳ１２に移行すると、作業計画策定部２４は、作業リスト（図６）から次の作業Ｘを選択する。ここでは、作業計画策定部２４は、作業Ａを選択するものとする。
【００２６】
次に、ステップＳ１４では、作業計画策定部２４が、作業Ｘ（＝作業Ａ）が協調作業か否かを判断する。ここでは、作業Ａは協調作業ではなく、単腕作業であるので、ステップＳ１４の判断は否定され、ステップＳ２０に移行する。
【００２７】
ステップＳ２０に移行すると、作業計画策定部２４は、作業Ｘを開始時刻が未確定な動作がないアームに割り当てる。なお、この段階では、アームＲ１、Ｒ２のいずれにも作業が割り当てられていないため、例えば、図７（ａ）に示すように、作業計画策定部２４は、アームＲ１に対して作業Ａを割り当てる。なお、アームＲ１、Ｒ２のいずれも開始時刻が未確定な動作がないアームである場合には、作業計画策定部２４は、予め定めておいたルールに基づいていずれかのアームに作業を割り当てることとすればよい。例えば、作業計画策定部２４は、予め定められている優先順位が高い方のアームに作業を割り当てることとしてもよいし、これまでに割り当てた作業量が少ない方のアームに作業を割り当てることとしてもよい。ここで、図７（ａ）は、各アームに割り当てた作業（動作）の開始時刻や作業（動作）の時間を表すグラフである。図７（ａ）においては、グラフの下側から順に作業（動作）が実行されることを示している。なお、図７（ａ）は、作業Ａ（動作Ａ１〜Ａ３）の開始時刻は未だ確定されていない状態を示している。作業（動作）の開始時刻が確定した場合には、例えば、図９（ａ）の作業Ａや動作Ａ１〜Ａ３、Ｂ１のように、各作業及び動作が太線枠で表示されるものとする。
【００２８】
図５に戻り、次のステップＳ２２では、作業計画策定部２４が、全動作の開始時刻が決まっているロボットがあるか否かを判断する。図７（ａ）の状態では、アームＲ２に作業が割り当てられていないが、アームＲ２の全動作の開始時刻が決まっているともいえるため、ステップＳ２２の判断は肯定される。ステップＳ２２の判断が肯定されると、作業計画策定部２４はステップＳ１０に戻る。
【００２９】
ステップＳ１０に戻ると、作業計画策定部２４は、次の作業があるかを判断し、ここでの判断が肯定されると、ステップＳ１２に移行する。ステップＳ１２では、作業計画策定部２４は、図６の作業リストから次の作業Ｘとして作業Ｂを選択する。
【００３０】
次いで、ステップＳ１４では、作業Ｘ（＝作業Ｂ）が協調作業であるか否かを判断する。このステップＳ１４の判断が否定されると、ステップＳ２０に移行し、作業計画策定部２４は、作業Ｂを開始時刻が未確定な動作がないアーム（Ｒ２）に割り当てる（図７（ｂ）参照）。
【００３１】
次いで、ステップＳ２２では、作業計画策定部２４が、全動作の開始時刻が決まっているロボットがあるか否かを判断する。ここでは、アームＲ１、Ｒ２のいずれも全ての動作の開始時刻が決まっていないため、ステップＳ２２の判断は否定され、ステップＳ２４に移行する。
【００３２】
ステップＳ２４に移行すると、作業計画策定部２４は、アームＲ１、Ｒ２における開始時刻が未確定な最初の動作をα１，α２とする。ここでは、図７（ｂ）の動作Ａ１、Ｂ１がα１、α２となる。
【００３３】
次いで、ステップＳ２６では、作業計画策定部２４が、動作α１，α２（＝Ａ１、Ｂ１）の両方が干渉動作か否かを判断する。なお、このステップＳ２６では、後述するアームＲ１、Ｒ２の対象動作が干渉する可能性があるかを判断しているといえる。図７（ｂ）の場合、動作Ａ１、Ｂ１ともに非干渉動作であるため、ステップＳ２６の判断は否定され、作業計画策定部２４は、ステップＳ２８に移行する。
【００３４】
ステップＳ２８に移行すると、作業計画策定部２４は、非干渉動作の開始時刻を決定する。この場合、作業計画策定部２４は、図７（ｃ）において太線枠で示すように動作Ａ１、Ｂ１の開始時刻を決定する。その後は、作業計画策定部２４は、ステップＳ２２に戻る。
【００３５】
ステップＳ２２に戻ると、作業計画策定部２４は、全動作の開始時刻が決まっているアームがあるか否かを判断する。図７（ｃ）の場合、全動作の開始時刻が決まっているアームはないため、ステップＳ２２の判断が否定され、ステップＳ２４に移行する。ステップＳ２４に移行すると、作業計画策定部２４は、アームＲ１、Ｒ２の動作Ａ２、Ｂ２を動作α１、α２とする。次いで、ステップＳ２６では、作業計画策定部２４が、動作α１，α２（＝Ａ２、Ｂ２）の両方が干渉動作か否かを判断する。この場合、動作Ａ２，Ｂ２は両方とも干渉動作であるので、ステップＳ２６の判断が肯定され、ステップＳ３０に移行する。
【００３６】
ステップＳ３０に移行すると、作業計画策定部２４は、干渉動作の次の非干渉動作の後に出てくる干渉動作の手前までの動作を対象動作として特定する。また、作業計画策定部２４は、アームＲ１の対象動作を先に実行する場合とアームＲ２の対象動作を先に実行する場合の２通りの実行順について、全対象動作が完了する完了時刻（終了時刻）を計算して比較し、完了時刻が早い方の実行順を採用する。そして、作業計画策定部２４は、対象動作が早く完了する方のアームの対象動作の開始時刻を決定する。
【００３７】
図７（ｃ）の例では、動作Ａ２の次の非干渉動作Ａ３の後に干渉動作がなく、動作Ｂ２の次の非干渉動作Ｂ３の後に干渉動作がないため、作業計画策定部２４は、アームＲ１の動作Ａ２、Ａ３と、アームＲ２の動作Ｂ２、Ｂ３を対象動作とする。そして、作業計画策定部２４は、対象動作Ａ２、Ａ３を先に開始する場合の全対象動作の完了時刻と、対象動作Ｂ２、Ｂ３を先に開始する場合の全対象動作の完了時刻を算出して、比較する。
【００３８】
この場合、作業計画策定部２４は、図８（ａ）に示すように対象動作Ａ２、Ａ３を先に行う場合の全対象動作の完了時刻Ｔａと、図８（ｂ）に示すように対象動作Ｂ２、Ｂ３を先に行う場合の全対象動作の完了時刻Ｔｂとを算出して比較する。このとき、作業計画策定部２４は、各アームの干渉動作が同一時間に実行されないようにするが、一方のアームの干渉動作と他方のアームの非干渉動作とが同一時間に実行されることは許容するものとする。
【００３９】
図８（ａ）、図８（ｂ）の例では、図８（ａ）の全対象動作の完了時刻Ｔａの方が全対象動作の完了時刻Ｔｂよりも早いため、図８（ａ）の実行順を採用し、アームＲ１、Ｒ２のうち対象動作の完了時刻が早い方のアームＲ１の対象動作Ａ２、Ａ３の開始時刻を決定する（図９（ａ）の太線枠参照）。なお、図９（ａ）においては、作業Ａに含まれる全動作の開始時刻が決定したため、作業Ａの枠についても太線枠となっている。
【００４０】
なお、図８（ａ）、図８（ｂ）の例では、対象動作Ａ２，Ａ３がアームＲ１に割り当てられた第１作業であり、対象動作Ｂ２，Ｂ３がアームＲ２に割り当てられた第２作業であるといえる。また、ステップＳ３０では、第１作業（対象動作Ａ２，Ａ３）と第２作業（対象動作Ｂ２，Ｂ３）の実施場所が重複しないように第１作業を遅らせた場合（第１作業順の場合）の作業完了時刻と、第２作業を遅らせた場合（第２作業順の場合）の作業完了時刻を比較し、作業完了時刻が早い方の作業順を採用しているといえる。
【００４１】
上述のようにステップＳ３０の処理が実行された後は、作業計画策定部２４は、ステップＳ２２に戻る。ステップＳ２２に戻ると、作業計画策定部２４は、全動作の開始時刻が決まっているアームがあるか否かを判断する。図９（ａ）の場合、アームＲ１の全動作の開始時刻が決まっているため、ステップＳ２２の判断が肯定され、作業計画策定部２４はステップＳ１０に戻る。
【００４２】
ステップＳ１０に戻ると、作業計画策定部２４は、作業リスト（図６）に次の作業があるか否かを判断する。ここでは、次の作業Ｃがあるため、ステップＳ１０の判断は肯定され、ステップＳ１２に移行する。
【００４３】
ステップＳ１２に移行すると、作業計画策定部２４は、作業リストから次の作業Ｘとして作業Ｃを選択する。次いで、ステップＳ１４では、作業計画策定部２４が、作業Ｘ（＝作業Ｃ）が協調作業であるか否かを判断する。ここでは、作業Ｃは協調作業でないため、ステップＳ１４の判断は否定され、ステップＳ２０に移行する。ステップＳ２０に移行すると、作業計画策定部２４は、作業Ｃを開始時刻が未確定な動作がないアーム（ここでは、アームＲ１）に割り当てる。図９（ｂ）には、アームＲ１に作業Ｃを割り当てた状態が示されている。
【００４４】
次いで、ステップＳ２２では、作業計画策定部２４が、全動作の開始時刻が決まっているアームがあるか否かを判断する。図９（ｂ）の場合、全動作の開始時刻が決まっているアームはないため、ステップＳ２２の判断は否定され、ステップＳ２４に移行する。
【００４５】
ステップＳ２４に移行すると、作業計画策定部２４は、アームＲ１、Ｒ２の開始時刻が未確定な最初の動作Ｃ１、Ｂ２を動作α１、α２とする。次いで、ステップＳ２６では、作業計画策定部２４が、動作α１，α２（＝Ｃ１、Ｂ２）の両方が干渉動作か否かを判断する。ここでは、動作Ｃ１，Ｂ２の両方が干渉動作であるため、ステップＳ２６の判断は肯定され、作業計画策定部２４は、ステップＳ３０に移行する。
【００４６】
ステップＳ３０に移行すると、作業計画策定部２４は、前述と同様に、各アームの対象動作を特定し、いずれかのアームの対象動作の開始時刻を決定する。
【００４７】
図９（ｂ）の例では、動作Ｃ１の次の非干渉動作Ｃ２，Ｃ３の後に干渉動作Ｃ４があり、動作Ｂ２の次の非干渉動作Ｂ３の後には干渉動作がないため、作業計画策定部２４は、動作Ｃ１、Ｃ２、Ｃ３と、動作Ｂ２、Ｂ３を対象動作として特定する。また、作業計画策定部２４は、アームＲ１の対象動作を先に実行する場合とアームＲ２の対象動作を先に実行する場合の２通りの実行順について、全対象動作が完了する完了時刻を計算して比較し、完了時刻が早い方の実行順を採用する。そして、作業計画策定部２４は、対象動作が早く完了する方のアームの対象動作の開始時刻を決定する。
【００４８】
この場合、作業計画策定部２４は、図１０（ａ）に示すようにアームＲ１の対象動作Ｃ１、Ｃ２、Ｃ３を先に行う場合の全対象動作の完了時刻Ｔｃと、図１０（ｂ）に示すようにアームＲ２の対象動作Ｂ２、Ｂ３を先に行う場合の全対象動作の完了時刻Ｔｄとを比較する。図１０（ａ）、図１０（ｂ）の例では、図１０（ａ）の完了時刻Ｔｃの方が図１０（ｂ）の完了時刻Ｔｄよりも早いため、作業計画策定部２４は、図１０（ａ）の実行順を採用する。そして、作業計画策定部２４は、アームＲ１、Ｒ２のうち完了時刻が早い方のアームＲ１の対象動作Ｃ１、Ｃ２、Ｃ３の開始時刻を決定する（図１１の太線枠参照）。その後はステップＳ２２に戻る。
【００４９】
ステップＳ２２に移行すると、作業計画策定部２４は、全動作の開始時刻が決まっているアームがあるか否かを判断するが、図１１では、両アームＲ１、Ｒ２とも、全動作の開始時刻が決まっていない。したがって、ステップＳ２２の判断は否定され、作業計画策定部２４は、ステップＳ２４に移行する。ステップＳ２４に移行すると、作業計画策定部２４は、アームＲ１、Ｒ２の動作Ｃ４、Ｂ２を動作α１、α２とする。次いで、ステップＳ２６では、作業計画策定部２４が、動作α１，α２（＝Ｃ４、Ｂ２）の両方が干渉動作か否かを判断する。ここでは、動作Ｃ４、Ｂ２ともに干渉動作であるため、ステップＳ２６の判断が肯定され、ステップＳ３０に移行する。
【００５０】
ステップＳ３０に移行すると、作業計画策定部２４は、前述と同様に、各アームの対象動作を特定し、いずれかのアームの対象動作の開始時刻を決定する。
【００５１】
図１１の例では、動作Ｃ４以降に干渉動作がなく、動作Ｂ２の次の非干渉動作Ｂ３の後には干渉動作がないため、作業計画策定部２４は、動作Ｃ４と、動作Ｂ２、Ｂ３を対象動作として特定する。そして、作業計画策定部２４は、対象動作Ｃ４を先に開始する場合の全対象動作の完了時刻と、対象動作Ｂ２、Ｂ３を先に開始する場合の全対象動作の完了時刻を算出して、比較する。
【００５２】
この場合、作業計画策定部２４は、図１２（ａ）に示すように対象動作Ｃ４を先に行う場合の全対象動作の完了時刻Ｔｅと、図１２（ｂ）に示すように対象動作Ｂ２、Ｂ３を先に行う場合の全対象動作の完了時刻Ｔｆとを比較する。なお、図１２（ｂ）の場合、干渉動作Ｂ２は非干渉動作Ｃ２、Ｃ３と同一時間に行うことができるため、動作Ｃ１が実行された直後に干渉動作Ｂ２を開始することができる。図１２（ａ）、図１２（ｂ）の例では、図１２（ｂ）の完了時刻Ｔｆの方が図１２（ａ）の完了時刻Ｔｅよりも早いため、作業計画策定部２４は、図１２（ｂ）の実行順を採用し、アームＲ１、Ｒ２のうち完了時刻が早い方のアームＲ２の動作Ｂ２、Ｂ３の開始時刻を決定する（図１３（ａ）の太線枠参照）。その後はステップＳ２２に戻る。
【００５３】
ステップＳ２２に戻ると、作業計画策定部２４は、全動作の開始時刻が決まっているアームがあるか否かを判断する。図１３（ａ）の場合、アームＲ２の全動作の開始時刻が決まっている。したがって、ステップＳ２２の判断は肯定され、作業計画策定部２４は、ステップＳ１０に戻る。ステップＳ１０に戻ると、作業計画策定部２４は、作業リスト（図６）に次の作業があるか否かを判断する。ここでは、次の作業Ｄがあるため、ステップＳ１０の判断は肯定され、ステップＳ１２に移行する。
【００５４】
ステップＳ１２に移行すると、作業計画策定部２４は、作業リストから次の作業Ｘとして作業Ｄを選択する。次いで、ステップＳ１４では、作業計画策定部２４が、作業Ｄが協調作業であるか否かを判断する。ここでは、作業Ｄは協調作業であるため、ステップＳ１４の判断は肯定され、ステップＳ１６に移行する。ステップＳ１６に移行すると、作業計画策定部２４は、開始時刻が未確定な動作の開始時刻を決定する。図１３（ａ）の場合、動作Ｃ４の開始時刻が未確定であるため、動作Ｃ４の開始時刻を図１３（ａ）のまま決定する（図１３（ｂ）の動作Ｃ４の太線枠参照）。なお、図１３（ｂ）では、作業Ｃに含まれる全動作の開始時刻が決定されているので、作業Ｃの枠についても太線枠となっている。
【００５５】
次いで、ステップＳ１８では、作業計画策定部２４は、作業Ｘ（＝作業Ｄ）の全動作の開始時刻を決定する。この場合、作業計画策定部２４は、図１４に示すように、協調作業である作業ＤをそのままアームＲ１、Ｒ２の上に積み上げることで、作業Ｄの各動作の開始時刻を決定する。その後、作業計画策定部２４は、ステップＳ１０に戻る。
【００５６】
ステップＳ１０に戻ると、作業計画策定部２４は、作業リスト（図６）に次の作業があるか否かを判断する。ここでは、次の作業Ｅがあるため、ステップＳ１０の判断は肯定され、ステップＳ１２に移行する。
【００５７】
ステップＳ１２に移行すると、作業計画策定部２４は、作業リストから次の作業Ｘとして作業Ｅを選択する。次いで、ステップＳ１４では、作業計画策定部２４が、作業Ｅが協調作業であるか否かを判断する。ここでは、作業Ｅは単腕作業であるため、ステップＳ１４の判断は否定され、ステップＳ２０に移行する。ステップＳ２０に移行すると、作業計画策定部２４は、作業Ｅを開始時刻が未確定な動作がないアームに割り当てる。図１４の場合、アームＲ１、Ｒ２のいずれも開始時刻が未確定な動作がないアームであるので、作業計画策定部２４は、一例として、図１５に示すようにアームＲ１に作業Ｅを割り当てる。その後は、ステップＳ２２に移行する。
【００５８】
ステップＳ２２に移行すると、作業計画策定部２４は、全動作の開始時刻が決まっているアームがあるか否かを判断する。図１５の場合、アームＲ２の全動作の開始時刻が決まっているため、ステップＳ２２の判断は肯定され、作業計画策定部２４はステップＳ１０に戻る。ステップＳ１０に戻ると、作業計画策定部２４は、作業リスト（図６）に次の作業があるか否かを判断する。ここでは、次の作業がないため、ステップＳ１０の判断が否定され、作業計画策定部２４はステップＳ３２に移行する。
【００５９】
ステップＳ３２に移行すると、作業計画策定部２４は、開始時刻が未確定な動作の開始時刻を決定する。すなわち、作業計画策定部２４は、図１５でアームＲ１に割り当てた作業Ｅの動作Ｅ１、Ｅ２の開始時刻をそのまま決定する。
【００６０】
以上により、図５の全処理が終了する。図５の処理が終了した段階で生成されたロボットシステムの作業計画（図１５参照）は、協調作業や単腕作業、干渉動作や非干渉動作を考慮して、トータルの作業時間が極力短くなるように各作業、各動作の実行順が計画されたものとなっている。
【００６１】
図５の全処理が終了すると、作業計画策定部２４は、組立ラインの各工程に配置される人やロボットシステムに割り当てた作業の情報（作業計画）を表示制御部２６に送信する。この場合、表示制御部２６は、作業計画策定部２４により策定された作業計画に基づいて、図１６に示すような表示画面を作成し、作成した表示画面を表示部９３に対して表示させる。なお、図１６の表示画面においては、人（＃１、＃２、＃３、…）とロボットシステム（Ｍ１、…）に割り当てられた作業と、作業順（作業開始時刻）を確認することができるようになっている。
【００６２】
これまでの説明からわかるように、本実施形態では、作業計画策定部２４により、アームＲ１、Ｒ２に割り当てられた開始時刻が未確定な最初の動作が干渉動作であるかを判断することで、対象動作の実施場所が重複する可能性があるかを判断する判断部としての機能が実現されている。また、作業計画策定部２４により、アームＲ１の対象動作をアームＲ２の対象動作よりも先に実行する場合とアームＲ２の対象動作をアームＲ１の対象動作よりも先に実行する場合とを比較する比較部、及びアームＲ１の対象動作とアームＲ２の対象動作を実行する順番を決定する決定部、としての機能が実現されている。
【００６３】
以上、詳細に説明したように、本実施形態によると、作業計画策定部２４は、アームＲ１、Ｒ２に割り当てられた対象動作が干渉する可能性があるかを判断し（Ｓ２６）、判断の結果、干渉する可能性がある場合に（Ｓ２６：肯定）、対象動作が干渉しないようにアームＲ１の対象動作を遅らせた場合の全対象動作の完了時刻と、対象動作が干渉しないようにアームＲ２の対象動作を遅らせた場合の全対象動作の完了時刻と、を比較し、完了時刻が早い方の実行順を採用する（Ｓ３０）。これにより、最適化計算を行わなくても、アームＲ１、Ｒ２の両方に干渉動作を含む対象動作を実行させる場合の適切な実行順を決定することができる。この場合、最適化計算を行う場合と比べて短い時間で、適切な実行順を決定することができる。
【００６４】
なお、上記実施形態では、ロボットシステムが２つのアームを有する場合について説明したが、これに限らず、３つ以上のアームを有していてもよい。この場合にも、各アームに割り当てられた開始時刻が未確定な最初の動作の少なくとも２つが干渉動作である場合には、上記実施形態と同様にして動作の実行順を決定するようにすればよい。
【００６５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記憶媒体（ただし、搬送波は除く）に記録しておくことができる。
【００６６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記憶媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６７】
プログラムを実行するコンピュータは、例えば、可搬型記憶媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記憶媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００６８】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００６９】
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
（付記１）  第１ロボットに割り当てられた第１作業と、第２ロボットに割り当てられた第２作業の実施場所が重複する可能性があるか判断する判断部と、
前記第１作業と前記第２作業の実施場所が重複する可能性がある場合に、前記第１作業と前記第２作業の実施場所が重複しないように前記第１作業を遅らせた第１作業順を採用した場合の前記第１、第２作業全ての終了時刻と、前記第１作業と前記第２作業の実施場所が重複しないように前記第２作業を遅らせた第２作業順を採用した場合の前記第１、第２作業全ての終了時刻と、を比較する比較部と、
前記第１作業順と前記第２作業順のうち、前記第１、第２作業全ての終了時刻が早い方の作業順を前記第１作業と前記第２作業の作業順として決定する決定部と、
を備える情報処理装置。
（付記２）  前記第１作業及び前記第２作業は、前記第１ロボットと前記第２ロボットが共に利用する干渉領域での動作を１つ実行した後に前記干渉領域以外の非干渉領域での動作を１又は複数実行する作業、前記干渉領域での動作を１つのみ実行する作業、前記非干渉領域での動作のみを実行する作業、のいずれかであることを特徴とする、付記１に記載の情報処理装置。
（付記３）  第１ロボットに割り当てられた第１作業と、第２ロボットに割り当てられた第２作業の実施場所が重複する可能性があるか判断し、
前記第１作業と前記第２作業の実施場所が重複する可能性がある場合に、前記第１作業と前記第２作業の実施場所が重複しないように前記第１作業を遅らせた第１作業順を採用した場合の前記第１、第２作業全ての終了時刻と、前記第１作業と前記第２作業の実施場所が重複しないように前記第２作業を遅らせた第２作業順を採用した場合の前記第１、第２作業全ての終了時刻と、を比較し、
前記第１作業順と前記第２作業順のうち、前記第１、第２作業全ての終了時刻が早い方の作業順を前記第１作業と前記第２作業の作業順として決定する、
処理をコンピュータに実行させるための作業計画プログラム。
（付記４）  前記第１作業及び前記第２作業は、前記第１ロボットと前記第２ロボットが共に利用する干渉領域での動作を１つ実行した後に前記干渉領域以外の非干渉領域での動作を１又は複数実行する作業、前記干渉領域での動作を１つのみ実行する作業、前記非干渉領域での動作のみを実行する作業、のいずれかであることを特徴とする、付記３に記載の作業計画プログラム。
（付記５）  第１ロボットに割り当てられた第１作業と、第２ロボットに割り当てられた第２作業の実施場所が重複する可能性があるか判断し、
前記第１作業と前記第２作業の実施場所が重複する可能性がある場合に、前記第１作業と前記第２作業の実施場所が重複しないように前記第１作業を遅らせた第１作業順を採用した場合の前記第１、第２作業全ての終了時刻と、前記第１作業と前記第２作業の実施場所が重複しないように前記第２作業を遅らせた第２作業順を採用した場合の前記第１、第２作業全ての終了時刻と、を比較し、
前記第１作業順と前記第２作業順のうち、前記第１、第２作業全ての終了時刻が早い方の作業順を前記第１作業と前記第２作業の作業順として決定する、
処理をコンピュータが実行することを特徴とする作業計画方法。
【符号の説明】
【００７０】
１０  情報処理装置
２４  作業計画策定部（判断部、比較部、決定部）
９０  ＣＰＵ（コンピュータ）
Ｒ１  アーム（第１ロボット）
Ｒ２  アーム（第２ロボット）
【図１】
2019212023.tif 000003
【図２】
2019212023.tif 000004
【図３】
2019212023.tif 000005
【図４】
2019212023.tif 000006
【図５】
2019212023.tif 000007
【図６】
2019212023.tif 000008
【図７】
2019212023.tif 000009
【図８】
2019212023.tif 000010
【図９】
2019212023.tif 000011
【図１０】
2019212023.tif 000012
【図１１】
2019212023.tif 000013
【図１２】
2019212023.tif 000014
【図１３】
2019212023.tif 000015
【図１４】
2019212023.tif 000016
【図１５】
2019212023.tif 000017
【図１６】
2019212023.tif 000018