(57)【要約】【課題】  効率よく作業順序制約を自動生成することができる情報処理装置および作業順序制約生成プログラムを提供する。【解決手段】  情報処理装置は、複数の部品を含む製品を組み立てるための複数の作業情報と、前記製品の完成状態の情報とを取得する取得部と、前記複数の作業情報のそれぞれに含まれる部品情報と、前記完成状態の情報とに基づいて、前記複数の作業情報の作業順序制約情報を生成する生成部と、を備える。【選択図】  図４
2020198039.tif 000002
【特許請求の範囲】
【請求項１】
複数の部品を含む製品を組み立てるための複数の作業情報と、前記製品の完成状態の情報とを取得する取得部と、
前記複数の作業情報のそれぞれに含まれる部品情報と、前記完成状態の情報とに基づいて、前記複数の作業情報の作業順序制約情報を生成する生成部と、を備えることを特徴とする情報処理装置。
【請求項２】
前記作業情報は、作業が行われる作業部品の情報である作業部品情報と、前記作業部品の作業先である被作業部品の情報である被作業部品情報とを含み、
前記生成部は、所定の部品が作業部品情報と指定された第１作業情報と、前記所定の部品が被作業部品情報と指定された第２作業情報とを抽出し、前記第１作業情報を前記第２作業情報の先行作業に指定する作業順序制約情報を生成することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記作業情報は、作業が行われる作業部品の情報である作業部品情報と、前記作業部品の作業先である被作業部品の情報である被作業部品情報とを含み、
前記生成部は、１つの作業情報において複数の部品が被作業部品情報に含まれる場合に、当該複数の部品が作業部品情報として含まれる作業情報を前記１つの作業情報の先行作業に指定する作業順序制約情報を生成することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記生成部は、前記部品情報に含まれる各部品の重心情報と、前記各部品同士の接触面情報とを基に、前記作業順序制約情報を生成することを特徴とする請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
前記生成部は、内側に設置される部品の作業情報の順番が、外側に設置される部品の作業情報順番よりも優先されるような、前記作業順序制約情報を生成することを特徴とする請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
コンピュータに、
複数の部品を含む製品を組み立てるための複数の作業情報と、前記製品の完成状態の情報とを取得する処理と、
前記複数の作業情報のそれぞれに含まれる部品情報と、前記完成状態の情報とに基づいて、前記複数の作業情報の作業順序制約情報を生成する処理と、を実行させることを特徴とする作業順序制約生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理装置および作業順序制約生成プログラムに関する。
【背景技術】
【０００２】
複数の部品を含む製品を製造するための複数の作業情報の順序を自動生成する技術が開示されている（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１７１７３６号公報
【特許文献２】特開平８−２３５２３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
作業順序制約を設定しないで作業情報の順序を生成すると、組み立てられない順序が生成されることがある。そこで、作業情報の順序を自動生成する前に、作業順序制約を自動生成しておくことが望まれる。しかしながら、作業順序制約を自動生成するのに多大な工数を要する。
【０００５】
１つの側面では、本発明は、効率よく作業順序制約を自動生成することができる情報処理装置および作業順序制約生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、情報処理装置は、複数の部品を含む製品を組み立てるための複数の作業情報と、前記製品の完成状態の情報とを取得する取得部と、前記複数の作業情報のそれぞれに含まれる部品情報と、前記完成状態の情報とに基づいて、前記複数の作業情報の作業順序制約情報を生成する生成部と、を備える。
【発明の効果】
【０００７】
効率よく作業順序制約を自動生成することができる。
【図面の簡単な説明】
【０００８】
【図１】（ａ）〜（ｅ）は作業順序制約を説明するための図である。
【図２】（ａ）は実施例１に係る情報処理装置の全体構成を表す機能ブロック図であり、（ｂ）は情報処理装置のハードウェア構成を例示するブロック図である。
【図３】（ａ）は入力された作業リストであり、（ｂ）は３Ｄモデルにおいて抽出された接触面を例示する図である。
【図４】（ａ）〜（ｄ）は第１設定条件を例示する図である。
【図５】（ａ）〜（ｃ）は第２設定条件を例示する図である。
【図６】（ａ）〜（ｃ）は第２設定条件を例示する図である。
【図７】（ａ）〜（ｄ）は第３設定条件を例示する図である。
【図８】（ａ）〜（ｄ）は第３設定条件を例示する図である。
【図９】（ａ）および（ｂ）は作業順序の生成を例示する図である。
【図１０】情報処理装置が実行する各処理の流れを表すフローチャートを例示する図である。
【発明を実施するための形態】
【０００９】
生産ラインを取り巻く環境は、時々刻々と変化するため、ライン構成の計画（検討と変更）の頻度も上がる。しかしながら、ライン計画は、熟練工程設計者の勘、コツなどに依存する部分が大きく、標準的な設計手法が少ない。したがって、最近では工程計画の自動生成ツールが利用されていることが多くなっている。
【００１０】
自動生成ツールを利用して工程を計画する場合、組立可能となるように作業順序制約が予め生成される。現状、作業順序制約の生成は、人手によることが大半である。したがって、作業順序制約の生成には多大な工数がかかるばかりか、作業順序制約の生成ミスによる組立不可な計画生成も少なくない。
【００１１】
作業順序制約とは、作業情報の順序（以下、作業順序と称する。）を決定するにあたっての順序の制約である。作業順序制約に違反すると、実行不可な作業順序が生成される。ここで、作業順序制約の例について説明する。図１（ａ）で例示するように、作業情報１（Ｊｏｂ１）は、カバーを付ける作業を表す。作業情報２（Ｊｏｂ２）は、カバーにネジ１を締める作業を表す。作業情報３（Ｊｏｂ３）は、カバーにネジ２を締める作業を表す。作業情報４（Ｊｏｂ４）は、カバーにシールを貼る作業を表す。ネジ１およびネジ２はカバーを固定するための部品であるため、Ｊｏｂ２およびＪｏｂ３は、Ｊｏｂ１の後に行わなければならない。なお、Ｊｏｂ１とＪｏｂ４とは互いに独立しているため、どちらを先に行ってもよい。
【００１２】
この場合、例えば、図１（ｂ）で例示するように、作業番号＃１として、Ｊｏｂ１が行われる。次に、作業番号＃２としてＪｏｂ２が行われ、作業番号＃３としてＪｏｂ３が行われる。次に、作業番号＃４としてＪｏｂ４が行われる。例えば、図１（ｃ）で例示するように、作業番号＃１としてＪｏｂ１が行われ、作業番号＃２としてＪｏｂ３が行われ、作業番号＃３としてＪｏｂ４が行われ、作業番号＃４としてＪｏｂ２が行われてもよい。
【００１３】
しかしながら、図１（ｄ）で例示するように、Ｊｏｂ２をＪｏｂ１よりも先に行うことはできない。また、図１（ｅ）で例示するように、Ｊｏｂ２およびＪｏｂ３をＪｏｂ１よりも先に行うこともできない。このように、作業順序制約に違反すると、実行不可な作業順序が生成され得る。
【００１４】
作業順序制約の自動生成方法として、製品の完成状態の３Ｄモデルを活用し、対象作業の分解経路が生成可能か否かを検討することで、作業順序制約を設定する方法がある。しかしながら、全ての構成部品ごとに、部品を動かしながら６方向の分解可能性の有無を探索し、加えて、各々の分解状態ごとに探索を実施する処理には、多大な時間を要する。そこで、以下の実施例では、構成部品を移動することなく、各部品の位置関係と設定条件を加えることで、効率よく作業順序制約を生成することができる情報処理装置および作業順序制約生成プログラムについて説明する。
【実施例１】
【００１５】
図２（ａ）は、実施例１に係る情報処理装置１００の全体構成を表す機能ブロック図である。図２（ａ）で例示するように、情報処理装置１００は、３Ｄモデル取得部１０、作業リスト取得部２０、接触面抽出部３０、順序制約生成部４０、作業順序生成部５０などとして機能する。
【００１６】
図２（ｂ）は、情報処理装置１００のハードウェア構成を例示するブロック図である。図２（ｂ）で例示するように、情報処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、表示装置１０４、入力装置１０５等を備える。
【００１７】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。記憶装置１０３は、作業順序制約生成プログラムを記憶している。表示装置１０４は、液晶ディスプレイ、エレクトロルミネッセンスパネルなどであり、情報処理装置１００の処理の結果などを表示する。入力装置１０５は、キーボード、マウスなどの入力装置である。なお、本実施例においては、図２（ａ）の各部は、プログラムの実行によって実現されているが、専用の回路などのハードウェアであってもよい。
【００１８】
３Ｄモデル取得部１０は、複数の部品を含む製品の完成状態の情報の一例として、３Ｄモデルを取得する。３Ｄモデルは、３Ｄ  ＣＡＤデータなどであり、例えば入力装置１０５を介して入力される。作業リスト取得部２０は、当該製品を組み立てるための複数の作業情報をリスト化した作業リストを取得する。作業リストは、例えば入力装置１０５を介して入力される。作業リストには、作業が行われる作業部品の情報である作業部品情報、作業部品の作業先である被作業部品の情報である被作業部品情報、作業部品が被作業部品に対して作業される内容を表した作業情報（Ｊｏｂ）、などが含まれている。作業部品および被作業部品は、製品の設計者によって予め設定されている。一例として、各作業において、被作業部品は、アームロボット等によって座標が固定される。例えば、作業部品は、当該被作業部品に対して、取り付け、貼り付け、ネジ締めなどの移動を伴う作業が行われる。
【００１９】
接触面抽出部３０は、３Ｄモデル取得部１０が取得した３Ｄモデルから、作業部品と被作業部品との接触面を抽出する。図３（ａ）は、作業リスト取得部２０が取得した作業リストを例示する図である。図３（ｂ）は、３Ｄモデル取得部１０が取得した３Ｄモデルに、接触面抽出部３０によって抽出された接触面が表された図である。接触面は、ハッチで描かれている。
【００２０】
作業情報１（Ｊｏｂ１）は、部品ａ１を部品ａ３に嵌合する作業を表している。Ｊｏｂ１では、作業部品は部品ａ１であり、被作業部品は部品ａ３である。作業情報２（Ｊｏｂ２）は、部品ａ２を部品ａ１に接続する作業を表している。Ｊｏｂ２では、作業部品は部品ａ２であり、被作業部品は部品ａ１である。作業情報３（Ｊｏｂ３）は、部品ａ３を部品Ｂに接続する作業を表している。Ｊｏｂ３では、作業部品は部品ａ３であり、被作業部品は部品Ｂである。
【００２１】
作業情報４（ｊｏｂ４）は、部品ｃ１を部品Ｂに取り付ける作業を表している。Ｊｏｂ４では、作業部品は部品ｃ１であり、被作業部品は部品Ｂである。作業情報５（Ｊｏｂ５）は、部品ｃ２を部品ｃ１に貼り付ける作業を表している。Ｊｏｂ５では、作業部品は部品ｃ２であり、被作業部品は部品ｃ１である。作業情報６（Ｊｏｂ６）は、部品ｃ３を部品ｃ１に貼り付ける作業を表している。Ｊｏｂ６では、作業部品は部品ｖ３であり、被作業部品は部品ｃ１である。
【００２２】
作業情報７（Ｊｏｂ７）は、部品ｄ１を部品ｃ１にネジ締めする作業を表している。Ｊｏｂ７では、作業部品は部品ｄ１であり、被作業部品は部品ｃ１および部品Ｂである。作業情報８（Ｊｏｂ８）は、部品ｄ２を部品ｃ１にネジ締めする作業を表している。ｊｏｂ８では、作業部品は部品ｄ２であり、被作業部品は部品ｃ１および部品Ｂである。
【００２３】
作業情報９（Ｊｏｂ９）は、部品Ｅを部品Ｂに取り付ける作業を表している。Ｊｏｂ９では、作業部品は部品Ｅであり、被作業部品は部品Ｂである。作業情報１０（ｊｏｂ１０）は、部品ｆ１を部品Ｂに貼り付ける作業を表している。Ｊｏｂ１０では、作業部品は部品ｆ１であり、被作業部品は部品Ｂである。作業情報１１（Ｊｏｂ１１）は、部品ｆ２を部品Ｂに貼り付ける作業を表している。Ｊｏｂ１１では、部品作業は部品ｆ２であり、被作業部品は部品Ｂである。
【００２４】
順序制約生成部４０は、３Ｄモデルおよび作業リストから、作業順序制約を生成する。作業順序生成部５０は、順序制約生成部４０が生成した作業順序制約に違反しないように、各作業情報の順序である作業順序を生成する。以下、順序制約生成部４０による作業順序制約の生成の詳細について説明する。
【００２５】
（設定条件１）
順序制約生成部４０は、設定条件１に基づき、作業情報ごとに順序制約作業が有るか否かを判定する。
【００２６】
作業リストには、被作業部品情報欄に、複数の部品が登録されている作業情報がある。例えば、図４（ａ）で例示するように、Ｊｏｂ７では、部品ｃ１および部品Ｂが被作業部品情報に登録されている。図４（ｂ）で例示するように、部品ｄ１は、ネジであり、部品ｃ１を部品Ｂに対して固定するための部品である。したがって、部品ｃ１が部品Ｂに取り付けられるＪｏｂ４の後でなければ、Ｊｏｂ７を実行することができない。
【００２７】
そこで、順序制約生成部４０は、作業リストの被作業部品情報欄に複数の部品が登録されている作業情報（締結作業等）の場合、対象作業の被作業部品情報が作業部品情報として登録されている作業情報を全て抽出する。図４（ｃ）の例では、Ｊｏｂ７に加えて、部品ｄ２を部品ｃ１にネジ締めするＪｏｂ８が抽出される。このＪｏｂ８でも、図４（ｄ）で例示するように、部品ｃ１が部品Ｂに取り付けられた後でなければ実行することができない。そこで、順序制約生成部４０は、Ｊｏｂ４を、Ｊｏｂ７およびＪｏｂ８の先行作業として設定する。
【００２８】
（設定条件２）
順序制約生成部４０は、設定条件２に基づき、作業情報ごとに順序制約作業が有るか否かを判定する。
【００２９】
また、順序制約生成部４０は、作業リストに含まれている同じ部品が作業部品情報欄および被作業部品情報欄に単体で登録されている作業情報に着目する。例えば、図５（ａ）で例示するように、Ｊｏｂ１では部品ａ１が作業部品情報に登録されており、Ｊｏｂ２では部品ａ１が被作業部品情報に登録されている。図６（ａ）で例示するように、部品ａ１が部品ａ３に嵌合され、部品ａ２が部品ａ１に接続される。
【００３０】
このような場合、複数部品から形成される作業対象部品は、その部品を取付ける前（姿勢が固定される前）に、その構成要素となる部品を設置しておくことが好ましい。図５（ａ）の例では、部品ａ２を部品ａ１に取り付けておくことが好ましい。そこで、順序制約生成部４０は、作業部品情報欄および被作業部品情報欄の両方に同じ部品が単体で登録されている作業情報の場合、被作業部品情報として登録されている作業情報を、作業部品情報として登録されている作業情報の先行作業として設定する。図５（ａ）および図６（ａ）の例の場合、順序制約生成部４０は、部品ａ２を部品ａ１に接続するＪｏｂ２を、部品ａ１を部品ａ３に嵌合するＪｏｂ１の先行作業として設定する。
【００３１】
同様に、図５（ｂ）および図６（ｂ）の例では、部品ａ３が作業部品情報欄および被作業部品情報欄に単体で登録されている。この場合においては、部品ａ１を部品ａ３に嵌合するＪｏｂ１の後に、部品ａ３を部品Ｂに接続するＪｏｂ３が行われることが好ましい。そこで、順序制約生成部４０は、Ｊｏｂ１を、Ｊｏｂ３の先行作業として設定する。
【００３２】
同様に、図５（ｃ）および図６（ｃ）の例では、部品ｃ１が作業部品情報欄および被作業部品情報欄に単体で登録されている。この場合においては、部品ｃ２を部品ｃ１に貼り付けるＪｏｂ５および部品ｃ３を部品ｃ１に貼り付けるＪｏｂ６の後に、部品ｃ１を部品Ｂに取り付けるＪｏｂ４が行われることが好ましい。そこで、順序制約生成部４０は、Ｊｏｂ５およびＪｏｂ６を、Ｊｏｂ４の先行作業として設定する。
【００３３】
（設定条件３）
順序制約生成部４０は、設定条件３に基づき、作業情報ごとに順序制約作業が有るか否かを判定する。
【００３４】
また、順序制約生成部４０は、作業リストの被作業部品情報欄に、同一部品が複数回登録されている場合に着目する。この場合、作業対象部品の取付け方向から、完成状態における内外設置位置を判断し、より内側の部品を先に設置することが好ましい。
【００３５】
そこで、順序制約生成部４０は、３Ｄモデル上の作業部品および被作業部品のそれぞれの最小外接直方体を設定し、各直方体の重心位置を算出する。次に、順序制約生成部４０は、各作業情報の作業部品および被作業部品の接触面から、作業部品の重心方向の法線ベクトルαと被作業部品の重心方向の法線ベクトルβを算出する。法線ベクトルαの方向と法線ベクトルβの方向とが合致すれば、当該作業情報は、内側の部品の設置に該当すると判定することができる。そこで、順序制約生成部４０は、法線ベクトルαの方向と法線ベクトルβの方向とが合致した作業を、他の作業の先行作業として設定する。
【００３６】
例えば、図７（ａ）で例示するように、部品Ｂが被作業部品情報欄に複数回登録されている。部品Ｂが被作業部品情報欄に登録されている作業は、Ｊｏｂ３、Ｊｏｂ４、およびＪｏｂ７〜Ｊｏｂ１１である。
【００３７】
部品Ｂが被作業部品として登録されている各Ｊｏｂの作業部品は、部品ａ３、部品ｃ１、部品ｄ２、部品ｄ２、部品Ｅ、部品ｆ１および部品ｆ２である。そこで、順序制約生成部４０は、部品ａ３、部品ｃ１、部品ｄ２、部品ｄ２、部品Ｅ、部品ｆ１、部品ｆ２および部品Ｂの各最小外接直方体を設定し、その重心位置を算出する。図８（ａ）は、重心位置を例示する図である。この場合において、順序制約生成部４０は、部品ａ３と部品Ｂとの接触面から、作業部品である部品ａ３の重心方向の法線ベクトルαと、被作業部品である部品Ｂの重心方向の法線ベクトルβとを算出する。図８（ａ）で例示するように、法線ベクトルαの方向と法線ベクトルβの方向とが合致している。そこで、順序制約生成部４０は、部品ａ３を部品Ｂに接続するＪｏｂ３を他の作業の先行作業に設定する。
【００３８】
次に、順序制約生成部４０は、部品ｃ１と部品Ｂとの接触面から、作業部品である部品ｃ１の重心方向の法線ベクトルαと、被作業部品である部品Ｂの重心方向の法線ベクトルβとを算出する。図８（ｂ）で例示するように、法線ベクトルαの方向と法線ベクトルβの方向とが合致していない。したがって、図７（ｂ）で例示するように、順序制約生成部４０は、部品ｃ１を部品Ｂに接続するＪｏｂ４については、他の作業の先行作業には設定しない。
【００３９】
同様に、順序制約生成部４０は、図８（ｃ）で例示するように、部品ｄ２、部品ｄ２、部品Ｅ、部品ｆ１および部品ｆ２について、それぞれ法線ベクトルαおよび法線ベクトルβを算出する。これらのうち、部品Ｅについては、法線ベクトルαの方向と法線ベクトルβの方向とが合致している。したがって、順序制約生成部４０は、図７（ｃ）で例示するように、部品Ｅを部品Ｂに取り付けるＪｏｂ９を、他の先行作業に設定する。また、順序制約生成部４０は、部品ｄ１を部品ｃ１にネジ締めするＪｏｂ７、部品ｄ２を部品ｃ１にネジ締めするＪｏｂ８、部品Ｅを部品Ｂに取り付けるＪｏｂ９、部品ｆ１を部品Ｂに貼り付けるＪｏｂ１０、および部品ｆ２を部品Ｂに貼り付けるＪｏｂ１１については、他の作業の先行作業には設定しない。
【００４０】
以上のように、各部品の重心情報と各接触面との関係を取得することで、完成状態における内外設置位置を判断することができ、より内側の部品を先に設置することができる。以上の設定により、順序制約生成部４０は、Ｊｏｂ３およびＪｏｂ９を、Ｊｏｂ４、Ｊｏｂ７、Ｊｏｂ８、Ｊｏｂ１０およびＪｏｂ１１の先行作業に設定する。
【００４１】
同様に、順序制約生成部４０は、部品ｃ１が被作業部品として登録されている各Ｊｏｂの作業部品について、法線ベクトルαおよび法線ベクトルβを算出し、方向の合致を調べる。図７（ｄ）および図８（ｄ）で例示するように、部品ｃ２、部品ｃ３、部品ｄ１および部品ｄ２について、法線ベクトルαの方向と法線ベクトルβの方向とが合致していない。したがって、順序制約生成部４０は、Ｊｏｂ５〜Ｊｏｂ８については、他の作業の先行作業には設定しない。
【００４２】
（作業順序の生成）
作業順序生成部５０は、設定条件１〜３で設定された先行作業を作業リストに集約する。次に、作業順序生成部５０は、順序制約生成部４０が生成した作業順序制約に違反しないように、各作業の作業順序を生成する。まず、作業順序生成部５０は、図９（ａ）で例示するように、作業順序制約について整理する。具体的には、作業順序生成部５０は、Ｊｏｂ２の後にＪｏｂ１を行い、その後にＪｏｂ３を行う作業順序グループ１を生成する。また、作業順序生成部５０は、Ｊｏｂ３の後にＪｏｂ９を行い、その後にＪｏｂ１０およびＪｏｂ１１を行う作業順序グループ２を生成する。また、作業順序生成部５０は、Ｊｏｂ５およびＪｏｂ６をいずれかの順序で行う作業順序グループ３を生成する。
【００４３】
次に、図９（ｂ）で例示するように、作業順序生成部５０は、作業順序グループ１の後に作業順序グループ２を行う順序を生成する。作業順序グループ３については、作業順序グループ１および作業順序グループ２に対しては特に順序が拘束されない。作業順序生成部５０は、作業順序グループ１〜作業順序グループ３の後にＪｏｂ４を行う順序を生成する。作業順序生成部５０は、Ｊｏｂ４の後に、Ｊｏｂ７およびＪｏｂ８をいずれかの順序で行う作業順序グループ４を行う順序を生成する。これにより、全ての作業の順序が、作業順序制約に違反しないように生成される。
【００４４】
図１０は、情報処理装置１００が実行する各処理の流れを表すフローチャートを例示する図である。図１０で例示するように、３Ｄモデル取得部１０は、入力装置１０５などから３Ｄモデルを取得する（ステップＳ１）。次に、作業リスト取得部２０は、入力装置１０５などから作業リストを取得する（ステップＳ２）。次に、接触面抽出部３０は、作業情報ごとの作業部品、作業情報ごとの被作業部品、および作業部品と被作業部品との接触面を抽出する（ステップＳ３）。
【００４５】
次に、順序制約生成部４０は、設定条件１に基づき、作業情報ごとに順序制約作業が有るか否かを判定する（ステップＳ４）。ステップＳ４で「Ｙｅｓ」と判定された場合、順序制約生成部４０は、作業リストの先行作業欄に、先行作業を登録する（ステップＳ５）。ステップＳ４と並行して、順序制約生成部４０は、設定条件２に基づき、作業情報ごとに順序制約作業が有るか否かを判定する（ステップＳ６）。
【００４６】
ステップＳ６で「Ｙｅｓ」と判定された場合、順序制約生成部４０は、作業リストの先行作業欄に、先行作業を登録する（ステップＳ７）。ステップＳ４およびステップＳ６と並行して、順序制約生成部４０は、設定条件３に基づき、作業情報ごとに順序制約作業が有るか否かを判定する（ステップＳ８）。ステップＳ８で「Ｙｅｓ」と判定された場合、順序制約生成部４０は、作業リストの先行作業欄に、先行作業を登録する（ステップＳ９）。
【００４７】
ステップＳ４、ステップＳ６もしくはステップＳ８で「Ｎｏ」と判定された場合、またはステップＳ５、ステップＳ７もしくはステップＳ９の実行後、順序制約生成部４０は、設定条件１〜３で設定された先行作業を作業リストに集約する（ステップＳ１０）。その後、作業順序生成部ｂ５０は各作業情報の先行作業欄の作業とその作業の先行作業とに重複があれば、重複作業を削除する（ステップＳ１１）。その後、フローチャートの実行が終了する。
【００４８】
本実施例によれば、作業リスト取得部２０が、複数の部品を含む製品を組み立てるための複数の作業情報として作業リストを取得する。３Ｄモデル取得部１０が、製品の完成状態の情報として３Ｄモデルを取得する。順序制約生成部４０が、作業リストの複数の作業情報のそれぞれに含まれる部品情報と、３Ｄモデルとに基づいて、作業順序制約情報を生成する。この構成によれば、構成部品を移動することなく、各部品の位置関係と作業情報とから作業順序制約を生成することができる。したがって、効率よく作業順序制約を自動生成することができる。
【００４９】
順序制約生成部４０は、設定条件１として、１つの作業情報において複数の部品が被作業部品情報に含まれる場合に、当該複数の部品が作業部品情報として含まれる作業情報を当該１つの作業情報の先行作業に指定する作業順序制約情報を生成してもよい。この場合、精度よく作業順序制約を生成することができる。
【００５０】
順序制約生成部４０は、設定条件２として、所定の部品が作業部品情報と指定された第１作業情報を、当該所定の部品が被作業部品情報と指定された第２作業情報の先行作業に指定する作業順序制約情報を生成してもよい。この場合、精度よく作業順序制約を生成することができる。
【００５１】
順序制約生成部４０は、設定条件３として、部品情報に含まれる各部品の重心情報と、各部品同士の接触面情報とを基に、作業順序制約を生成してもよい。この場合、内側に設置される部品の作業情報の順番を、外側に設置される部品の作業情報順番よりも優先することができる。したがって、精度よく作業順序制約を生成することができる。
【００５２】
上記各例において、３Ｄモデル取得部１０および作業リスト取得部２０が、複数の部品を含む製品を組み立てるための複数の作業情報と、前記製品の完成状態の情報とを取得する取得部の一例として機能する。順序制約生成部４０が、前記取得部が取得した前記複数の作業情報のそれぞれに含まれる部品情報と、前記完成状態の情報とに基づいて、前記複数の作業情報の作業順序制約情報を生成する生成部の一例として機能する。
【００５３】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５４】
１０  ３Ｄモデル取得部
２０  作業リスト取得部
３０  接触面抽出部
４０  順序制約生成部
５０  作業順序生成部
１００  情報処理装置
【図１】
2020198039.tif 000003
【図２】
2020198039.tif 000004
【図３】
2020198039.tif 000005
【図４】
2020198039.tif 000006
【図５】
2020198039.tif 000007
【図６】
2020198039.tif 000008
【図７】
2020198039.tif 000009
【図８】
2020198039.tif 000010
【図９】
2020198039.tif 000011
【図１０】
2020198039.tif 000012