(57)【要約】【課題】  シミュレーションにおいて算出する組み立て時間の推定値の精度を高めることができるプログラムを提供する。【解決手段】  シミュレーションによって製品の組み立て時間を算出するプログラムであって、入力部１３０２は、製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得し、変化点検出部１３１０は、取得したアニメーションデータから、アニメーションの視点の変化を検出し、標準時間算出部１３１１は、検出したアニメーションの視点の変化に基づいて、製品の組み立て時間の推定値を算出する。【選択図】        図１２
2014182557.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーションによって製品の組み立て時間を算出するプログラムであって、
コンピュータに、
前記製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得する手順と、
取得した前記アニメーションデータから、アニメーションの視点の変化を検出する手順と、
検出した前記アニメーションの視点の変化に基づいて、前記製品の組み立て時間の推定値を算出する手順と、
を実行させるためのプログラム。
【請求項２】
前記推定値を算出する手順は、前記製品を映す視点位置を変更しながら、前記製品の組み立て手順を表示するアニメーションにおける前記視点位置又は前記製品の位置の変化と、前記製品の組み立て作業を行う作業員の視点位置から前記製品の組み立て手順を表示するアニメーションにおける前記製品の位置の変化との少なくとも一方を検出して、前記推定値を算出することを特徴とする請求項１記載のプログラム。
【請求項３】
シミュレーションによって製品の組み立て時間を算出する組立時間算出方法であって、
前記製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得する工程と、
取得した前記アニメーションデータから、アニメーションの視点の変化を検出する工程と、
検出した前記アニメーションの視点の変化に基づいて、前記製品の組み立て時間の推定値を算出する工程と、
を有することを特徴とする組立時間算出方法。
【請求項４】
シミュレーションによって製品の組み立て時間を算出する組立時間算出装置であって、
前記製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得する手段と、
取得した前記アニメーションデータから、アニメーションの視点の変化を検出する手段と、
検出した前記アニメーションの視点の変化に基づいて、前記製品の組み立て時間の推定値を算出する手段と、
を備えることを特徴とする組立時間算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、プログラム、組立時間算出方法及び組立時間算出装置に関する。
【背景技術】
【０００２】
製品の組み立て作業をコンピュータでシミュレーションすることで、組み立て作業を行いやすい手順を解析する技術が知られている（例えば、特許文献１又は２参照）。また、シミュレーションにおいて、組み立て作業の手順を表すアニメーションを作成して、製品の組立性評価に役立てる技術が知られている（例えば特許文献３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−３００１４５号公報
【特許文献２】ＷＯ９９／３０２５８号公報
【特許文献３】特開２００７−２０００８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンピュータシミュレーションにより作成されるアニメーションは、実際の製品の組み立ての際に、作業員が見て組み立て作業の参考にするものである。このため、アニメーションにおいて、製品を映す視点の位置が切り替わると、実際の作業においても作業員の姿勢や立ち位置に変化が生じる場合がある。作業員の姿勢や立ち位置に変化が生じると、実際の作業時間に遅延が生じる場合があり、実際の作業時間と、シミュレーションによって算出する作業時間とにずれが生じることになる。
【０００５】
１つの側面では、本発明は、シミュレーションにより算出する組み立て時間の推定値の精度を高めることを目的とする。
【課題を解決するための手段】
【０００６】
本明細書に記載のプログラムは、シミュレーションによって製品の組み立て時間を算出するプログラムであって、コンピュータに、前記製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得する手順と、取得した前記アニメーションデータから、アニメーションの視点の変化を検出する手順と、検出した前記アニメーションの視点の変化に基づいて、前記製品の組み立て時間の推定値を算出する手順とを実行させることを特徴とする。
【０００７】
本明細書に記載の組立時間算出方法は、シミュレーションによって製品の組み立て時間を算出する組立時間算出方法であって、前記製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得する工程と、取得した前記アニメーションデータから、アニメーションの視点の変化を検出する工程と、検出した前記アニメーションの視点の変化に基づいて、前記製品の組み立て時間の推定値を算出する工程とを有する。
【０００８】
本明細書に記載の組立時間算出装置は、シミュレーションによって製品の組み立て時間を算出する組立時間算出装置であって、前記製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得する手段と、取得した前記アニメーションデータから、アニメーションの視点の変化を検出する手段と、検出した前記アニメーションの視点の変化に基づいて、前記製品の組み立て時間の推定値を算出する手段とを備える。
【発明の効果】
【０００９】
シミュレーションにより算出する組み立て時間の推定値の精度を高めることができる。
【図面の簡単な説明】
【００１０】
【図１】情報生成装置への入力データの一例を示す図である。
【図２】アセンブリツリーの一例を示す図である。
【図３】アセンブリの一例を示す図である。
【図４】部品情報のデータ構造例を示す図である。
【図５】アセンブリ情報のデータ構造例を示す図である。
【図６】相対座標値および相対姿勢を示す図である。
【図７】（Ａ）は図２に示すアセンブリツリーを等価な製造フローに変換した例を示す図であり、（Ｂ）は、（Ａ）の製造フローに工程を挿入した例を示す図である。
【図８】図７（Ｂ）の製造フローを親子関係で分解した分解製造フローを示す説明図である。
【図９】ノードのデータ構造例を示す図である。
【図１０】分解製造フローのリスト構造例を示す図である。
【図１１】情報生成装置のハードウェア構成例を示すブロック図である。
【図１２】情報生成装置の機能的構成例を示すブロック図である。
【図１３】生成部と算出部の処理を説明するための図である。
【図１４】バウンディングボックスの一例を示す図である。
【図１５】干渉判定の一例を示す説明図である。
【図１６】移動量設定の一例を示す図である。
【図１７】第１アニメーションについて説明するための図である。
【図１８】（Ａ）は、部品Ｍ０に部品Ｍ１を組み付ける際の視点方向を示す図であり、（Ｂ）は、（Ａ）に示す視点方向から見た、部品Ｍ０と部品Ｍ１の組み付け前と、組み付け後の状態を示す図である。
【図１９】図１８（Ａ）に示す視点位置とは異なる方向に視点位置を設定した状態を示す図である。
【図２０】視線の変化を説明するための図である。
【図２１】標準時間算出用テーブルの一例を示す図である。
【図２２】作業者視距離と作業者視線角度とを説明するための図である。
【図２３】天頂角と方位角と作業指示注視点距離とを説明するための図である。
【図２４】視点角を説明するための図であり、（Ａ）は視点角を設定する前の初期状態を示す図であり、（Ｂ）は、視点角を設定後の状態を示す図である。
【図２５】情報生成装置による情報生成処理の処理手順を示すフローチャートである。
【図２６】情報設定処理の処理手順を示すフローチャートである。
【図２７】標準時間算出処理の処理手順を示すフローチャートである。
【図２８】標準時間算出処理の処理手順の続きを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図１〜図２８を参照しながら、シミュレーションによって製品の組み立て時間の推定値を算出する情報生成装置について説明する。
【００１２】
＜入力データ例＞
図１は、情報生成装置の入力するアニメーションデータ（以下、入力データという）の一例を示す説明図である。入力データ２００は、例えば、３次元ＣＡＤ（Computer Aided Design）システムから送信されてくるデータである。図１では、例としてマウスの入力データ２００を示している。
【００１３】
入力データ２００には、情報生成の対象となる対象製品（図１ではマウス）の３次元モデル２０１と、３次元モデル２０１のアセンブリツリー２０２とが含まれる。アセンブリツリー２０２は、３次元モデル２０１を構成するアセンブリや部品（パーツ）の構成を階層構造化した情報である。アセンブリとは、複数の部品が組み付けられた集合品又は完成品である。アセンブリを構成する部品の組合せは、アセンブリツリー２０２から特定することができる。また、部品は、これ以上分解できない最小単位である。なお、部品とアセンブリとを総称して呼ぶ場合には、モデルと呼ぶ。
【００１４】
図２は、図１に示したアセンブリツリー２０２の一例を示す。図２において、トップアセンブリＡ０は、３次元モデル２０１であるマウス（完成品）を示している。図２の例では、トップアセンブリＡ０は、アセンブリＡ１，Ａ５および部品ｐ１０を有する。アセンブリＡ１は、アセンブリＡ２，Ａ３を有し、アセンブリＡ２は、部品ｐ１，ｐ２を有する。また、１つ上の階層のアセンブリを親アセンブリという。例えば、アセンブリＡ２の親アセンブリはアセンブリＡ１である。また、１つ下の階層のアセンブリを子アセンブリという。例えば、アセンブリＡ１の子アセンブリはアセンブリＡ２，Ａ３である。
【００１５】
図３は、アセンブリの一例を示す説明図である。図３では、アセンブリ４００は、ギア４０１と、軸４０２，４０３が組み合わされたアセンブリ４０４とを有する。
【００１６】
＜部品情報のデータ構造例＞
図４は、部品情報のデータ構造例を示す説明図である。部品情報５００は、３次元モデル内の各部品が有する情報であり、情報生成装置が、取得した入力データ２００から抽出する情報である。情報生成装置は、入力データ２００から抽出した部品情報５００を、図１２に示す記憶部１３０１に記憶させる。図４において、部品情報５００は、識別情報と、形状情報と、相対座標値と、相対姿勢と、最優先方向と、６軸スコアと、視点と、移動量との各項目を有する。
【００１７】
識別情報の項目には、部品を一意に特定する識別情報が記録されている。図４では、識別情報としてｐｉが記録されている。
【００１８】
形状情報の項目は、ファセットと、ファセットの法線ベクトルの項目が含まれている。ファセットとは、部品の立体形状を表現するために使われる３角形のポリゴンデータ（面データ）をいい、ファセットの項目には、部品のファセット群が記録される。図４に示す部品情報５００には、ｎｉ個のファセットｆｉ−１〜ｆｉ−ｎｉが記録されている。各ファセットｆｉ−１〜ｆｉ−ｎｉには、この部品のローカル座標系を基準にした３角形の頂点座標値が記録されている。ファセットの法線ベクトルの項目には、各ファセットｆｉ−１〜ｆｉ−ｎｉの法線ベクトルｖｉ−１〜ｖｉ−ｎｉ（ｎｉ個）が記録されている。
【００１９】
相対座標値の項目には、親アセンブリのローカル座標系（親アセンブリがトップアセンブリＡ０の場合はグローバル座標系）での親アセンブリの原点からの相対座標値が記録されている。図４では、相対座標値Ｃｉが記録されている。相対姿勢の項目には、親アセンブリのローカル座標系（親アセンブリがトップアセンブリＡ０の場合はグローバル座標系）での親アセンブリの姿勢からの相対姿勢Ｒｉが記録されている。相対姿勢Ｒｉは、例えば、３×３の行列で表現される。
【００２０】
最優先方向の項目には、組付方向と分解方向の項目が含まれている。入力データ２００を取得した段階では、組付方向および分解方向の項目には何も記録されず、組付方向や分解方向が検出された場合に、検出された方向が記録される。
【００２１】
６軸スコアの項目には、ローカル座標系の各軸（＋Ｘｌ〜−Ｚｌ）の項目と、グローバル座標系の各軸（＋Ｘｇ〜−Ｚｇ）の項目とが含まれている。入力データ２００を取得した段階では、６軸スコアの項目には何も記録されず、６軸スコアが算出されると、算出されたスコアが記録される。６軸スコアは、軸ごとの、組付方向としての適性をあらわす指標値である。本例では、スコアが高いほど適性があるものとする。６軸スコアの算出については後述する。
【００２２】
視点の項目には、視点位置を示す座標値が記録される。なお、視点位置は、アセンブリや部品のアニメーションを表示する方向を決定するものである。すなわち、視点位置の方向から見たアセンブリや部品がアニメーションとして表示される。また、分解方向にモデルを移動させる場合、分解方向が視点方向に一致していると分解状態のアニメーションを再生しても、分解方向への移動が見えにくい。そのため、視点の位置をずらした視点座標値を記録しておくことで、分解状態のアニメーションを再生する際に視点座標値からの視点方向で表示して視認しやすくする。
【００２３】
＜アセンブリ情報のデータ構造例＞
図５は、アセンブリ情報のデータ構造例を示す説明図である。アセンブリ情報６００は、３次元モデル内の各アセンブリが有する情報であり、情報生成装置が入力データ２００から抽出する情報である。図５において、アセンブリ情報６００は、識別情報と、直下の構成モデル数と、親アセンブリの識別情報と、相対座標値と、相対姿勢と、最優先方向と、６軸スコアと、視点と、移動量との各項目を有する。直下の構成モデル数および親アセンブリの識別情報以外の項目群は、部品情報５００と同一内容であるため、説明を省略する。
【００２４】
直下の構成モデル数の項目には、直下の構成モデル数ｍｊが記録される。直下の構成モデル数とは、自身アセンブリの１つ下の階層での構成モデル数である。１つ下の階層であっても、構成モデル以外のモデルはカウントしない。例えば、図２において、アセンブリＡ３の場合、アセンブリＡ３の下の階層には、アセンブリＡ４、部品ｐ３〜ｐ６が存在するが、アセンブリＡ３の１つ下の階層の構成モデルは、アセンブリＡ４，部品ｐ３，ｐ４である。従って、アセンブリＡ３の場合の直下の構成モデル数ｍｊは、ｍｊ＝３となる。
また、親アセンブリの識別情報の項目には、親アセンブリの識別情報Ａｊが記録される。例えば、アセンブリＡ３の場合、親アセンブリはアセンブリＡ１であるため、親アセンブリの識別情報の項目には、Ａ１が記録される。これにより、情報生成装置は、アセンブリごとにどのアセンブリと親子関係があるかを特定することができる。
【００２５】
図６は、図４および図５に示した相対座標値および相対姿勢を示す説明図である。ここでは、モデルＭの相対座標値および相対姿勢について説明する。図６において、Ｘｇ軸、Ｙｇ軸およびＺｇ軸からなるグローバル座標系をＣｇとする。Ｑ０は、グローバル座標系Ｃｇの原点である。グローバル座標系Ｃｇは、図２のトップアセンブリＡ０となるモデルＭ０を定義する空間である。モデルＭ０を構成するファセットの座標値は、原点Ｑ０を基準に設定される。
【００２６】
Ｑ１は、Ｘｌ１軸、Ｙｌ１軸およびＺｌ１軸からなるローカル座標系Ｃｌ１の原点である。ローカル座標系Ｃｌ１は、例えば、図２のトップアセンブリＡ０を親アセンブリとするアセンブリＡ１となるモデルＭ１を定義する空間である。ローカル座標系Ｃｌ１の原点Ｑ１は、グローバル座標系Ｃｇの原点Ｑ０との相対位置により決定される。モデルＭ１を構成するファセットの座標値は、原点Ｑ１を基準に設定される。また、ローカル座標系Ｃｌ１の相対姿勢Ｒ１は、グローバル座標系Ｃｇの、モデルＭ０の姿勢からの相対姿勢となる。
【００２７】
Ｑ２は、Ｘｌ２軸、Ｙｌ２軸およびＺｌ２軸からなるローカル座標系Ｃｌ２の原点である。ローカル座標系Ｃｌ２は、例えば、図２のアセンブリＡ１を親アセンブリとするアセンブリＡ２となるモデルＭ２を定義する空間である。ローカル座標系Ｃｌ２の原点Ｑ２は、ローカル座標系Ｃｌ１の原点Ｑ１との相対位置により決定される。モデルＭ２を構成するファセットの座標値は、原点Ｑ２を基準に設定される。また、ローカル座標系Ｃｌ２の相対姿勢Ｒ２は、ローカル座標系Ｃｌ１のモデルＭ１の姿勢からの相対姿勢となる。このように、モデルの相対座標値は、親アセンブリの原点からの相対位置で決定された原点を基準に設定され、モデルの姿勢は、親アセンブリの姿勢を基準に設定される。
【００２８】
＜アセンブリツリー２０２の変換例＞
図７は、アセンブリツリー２０２の変換例を示す説明図である。図７（Ａ）では、図２に示したアセンブリツリー２０２が、等価な製造フロー８０１に変換された状態を示している。製造フロー８０１への変換については手動でも自動でもよい。図７（Ａ）の製造フロー８０１では、例えば、部品ｐ７，ｐ８を組み合わせてアセンブリＡ６とし、部品ｐ９とアセンブリＡ６とを組み合わせてアセンブリＡ５とするように、上から下への方向が組付順を示している。従って、その逆の下から上の方向が分解順を示すことになる。
【００２９】
図７（Ｂ）の製造フロー８０２では、所望の位置に工程が挿入されている。工程は、ユーザ操作により挿入される。工程は、組み付けに必要な作業を示している。例えば、図７（Ｂ）において、部品ｐ２については、工程Ｆ２を施し、そのあとで部品ｐ１と組み合わせることで、アセンブリＡ２が得られることになる。
【００３０】
図８は、図７（Ｂ）の製造フロー８０２を親子関係で分解した分解製造フロー９０１〜９０７を示す説明図である。例えば、分解製造フロー９０２は、アセンブリＡ２，Ａ３を組み付けてアセンブリＡ１を生成するフローである。また、分解製造フロー９０３は、アセンブリｐ１に、工程Ｆ２を施したｐ２を組み付けてアセンブリＡ２を生成するフローである。
【００３１】
＜リスト構造＞
次に、製造フロー８０２のデータ構造について説明する。本実施形態では、上述した部品情報５００やアセンブリ情報６００を、ノードを連結したリスト構造で管理する。なお、ノードとは、製造フローにおいて、部品、アセンブリ、工程のいずれか１つを示す表示である。
【００３２】
図９は、ノードのデータ構造例を示す図である。図９において、ノードは、ノード番号と、ノード情報と、次ノードへのポインタとを含む。ノード番号は、組立順を示す番号であり、製造フロー８０２について１から順にナンバリングされる。ノード番号の昇順が組み立て順となり、その逆順が分解順となる。
【００３３】
また、ノード情報は、モデルの識別情報と、種別フラグと、フロー記号と、工程情報とを含む。モデルの識別情報とは、ノードに対応する部品またはアセンブリの識別情報である。モデルの識別情報がポインタとなり、部品情報５００やアセンブリ情報６００を指定することができる。
【００３４】
種別フラグとは、ノードが、部品、アセンブリ、工程のどのノードに該当するかを識別するフラグである。例えば、部品の種別フラグを「０」、アセンブリの種別フラグを「１」、工程の種別フラグを「２」とする。フロー記号は、図７、８に示した記号である。工程情報とは、ノードの種別が工程である場合に、工程の詳細な内容を示す文字列である。当該文字列は、ユーザ操作により入力される。なお、ノードの種別が部品やアセンブリである場合には、空欄となる。
【００３５】
次ノードへのポインタには、次ノードのノード番号が記録される。これにより、次ノードを指定することができる。また、次ノードからも指定される。次ノードがない場合、当該ノードが最後尾のノードとなるため、「Ｎｕｌｌ」が記録される。
【００３６】
図１０は、分解製造フローのリスト構造例を示す説明図である。図１０に示したリスト構造１１０１は、図８に示した分解製造フロー９０１のリスト構造であり、ノードＮ１〜Ｎ５が連結されている。
【００３７】
＜情報生成装置のハードウェア構成例＞
図１１は、情報生成装置１３００のハードウェア構成例を示すブロック図である。
【００３８】
情報生成装置１３００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２０１を備える。ＣＰＵ１２０１は、情報生成装置１３００の全体の制御を司る。
【００３９】
情報生成装置１３００は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２０２を備える。ＲＯＭ１２０２は、ブートプログラムなどのプログラムを記憶している。
【００４０】
情報生成装置１３００は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０３を備える。ＲＡＭ１２０３は、ＣＰＵ１２０１のワークエリアとして使用される。
【００４１】
情報生成装置１３００は、磁気ディスクドライブ１２０４と、磁気ディスク１２０５とを備える。磁気ディスクドライブ１２０４は、ＣＰＵ１２０１の制御に従って磁気ディスク１２０５に対するデータのリード／ライトを制御する。磁気ディスク１２０５は、磁気ディスクドライブ１２０４の制御により書き込まれたデータを記憶する。
【００４２】
情報生成装置１３００は、光ディスクドライブ１２０６と、光ディスク１２０７とを備える。光ディスクドライブ１２０６は、ＣＰＵ１２０１の制御に従って光ディスク１２０７に対するデータのリード／ライトを制御する。光ディスク１２０７は、光ディスクドライブ１２０６の制御により書き込まれたデータを記憶したり、光ディスク１２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００４３】
情報生成装置１３００は、ディスプレイ１２０８を備える。ディスプレイ１２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１２０８は、例えば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４４】
情報生成装置１３００は、インターフェース（以下、「Ｉ／Ｆ」と略する。）１２０９を備える。Ｉ／Ｆ１２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク１２１４に接続され、このネットワーク１２１４を介して他の装置に接続される。そして、Ｉ／Ｆ１２０９は、ネットワーク１２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１２０９には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００４５】
情報生成装置１３００は、キーボード１２１０とマウス１２１１とを備える。キーボード１２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４６】
情報生成装置１３００は、スキャナ１２１２とプリンタ１２１３とを備える。スキャナ１２１２は、画像を光学的に読み取り、情報生成装置１３００内に画像データを取り込む。なお、スキャナ１２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ１２１３は、画像データや文書データを印刷する。プリンタ１２１３には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。
【００４７】
＜情報生成装置の機能的構成例＞
図１２は、情報生成装置１３００の機能的構成例を示すブロック図である。情報生成装置１３００は、記憶部１３０１、入力部１３０２、選択部１３０３、生成部１３０４、算出部１３０５、判定部１３０６、決定部１３０７を備える。また、情報生成装置１３００は、設定部１３０８、再生部１３０９、変化点検出部１３１０、標準時間算出部１３１１、出力部１３１２を備える。
【００４８】
記憶部１３０１は、具体的には、例えば、図１１に示したＲＯＭ１２０２、ＲＡＭ１２０３、磁気ディスク１２０５、光ディスク１２０７などの記憶装置によりその機能を実現する。また、入力部１３０２〜出力部１３１２は、図１１に示したＲＯＭ１２０２、ＲＡＭ１２０３、磁気ディスク１２０５、光ディスク１２０７などの記憶装置に記憶されたプログラムをＣＰＵ１２０１に実行させ、その機能を実現する。
【００４９】
入力部１３０２は、データの入力を受け付ける。具体的には、図１に示したように、３次元モデル２０１やアセンブリツリー２０２の入力を受け付ける。入力データ２００は、記憶部１３０１に記憶させる。記憶部１３０１には、その他に、図４の部品情報５００、図５のアセンブリ情報６００、図７（Ｂ）の製造フローや図１０のリスト構造を順次記憶させる。
【００５０】
選択部１３０３は、複数のモデルで組み付けられたアセンブリを記憶する記憶部１３０１からいずれかのモデルを選択する。ここでは、すでに、処理対象となる分解製造フローのリスト構造が指定されているものとする。そして、選択部１３０３は、リスト構造の最後尾のノードから順次モデルを選択することになる。
例えば、図１０のリスト構造１１０１の場合、選択部１３０３は、最後尾のノードＮ５から順次選択し、部品ｐ１０を選択モデルとして選択し、次に、ノードＮ４のアセンブリＡ５を選択モデルとして選択する。次のノードＮ３は、工程であるため選択されず、ノードＮ２のアセンブリＡ１が選択されることになる。先頭のノードＮ１まで選択されると、選択すべきモデルがないため、終了する。
【００５１】
生成部１３０４は、第１の領域に対し、選択部１３０３での選択モデルを第１の領域の背景色と異なる色で複数の方向から投影することにより、第１の投影画像群を生成する。
具体的には、生成部１３０４は、選択モデルを、選択モデルのローカル座標系の６方向（＋Ｘｌ〜−Ｚｌ）とグローバル座標系の６方向（＋Ｘｇ〜−Ｚｇ）の各々の方向に投影した第１の投影画像群を生成する。投影先となる第１の領域とは、例えば、図１３に示す所定サイズのビットマップ画像領域（例えば、２００×２００ピクセル）である。生成部１３０４は、ローカル座標系とグローバル座標系とが一致する場合は、いずれか一方の座標系の６方向について投影画像を生成することになる。これにより、同一処理の重複を防止でき、処理の高速化を図ることができる。
【００５２】
図１３には、選択モデルのローカル座標系の６方向に、選択モデルを投影した第１の投影画像群を示す。ローカル座標系とグローバル座標系とが一致する場合、生成部１３０４は、第１の投影画像群として、投影画像（ａ）〜（ｆ）を生成する。なお、図１３に示すシャフト１０２の軸方向をＺ軸方向（＋Ｚ，−Ｚ）とし、軸方向に直交する方向をＸ軸方向（＋Ｘ，−Ｘ）とする。また、Ｘ軸とＺ軸とに直交する鉛直方向をＹ軸方向（＋Ｙ，−Ｙ）とする。この場合、選択モデル（Ｅリング１０１）は背景色（例えば、黒）と異なる色（白）で投影される。従って、選択モデルの投影箇所のビットを計数されることになる。なお、ローカル座標系とグローバル座標系とが一致しない場合がある。例えば、モデルのローカル座標系に対し、グローバル座標系では、斜めに組み付けられている場合などである。このような場合は、第１および第２の投影画像群は、それぞれ１２方向分生成されることになる。
【００５３】
また、生成部１３０４は、第１の領域と同サイズの第２の領域に対し、選択モデルを背景色と異なる色にし、選択モデル以外の他のモデルを背景色と同色にして、複数の方向から投影することにより、第２の投影画像群を生成する。具体的には、例えば、生成部１３０４は、選択モデルを、選択モデルのローカル座標系の６方向（＋Ｘｌ〜−Ｚｌ）とグローバル座標系の６方向（＋Ｘｇ〜−Ｚｇ）の各々の方向に投影した第２の投影画像群を生成する。投影先となる第２の領域とは、第１の領域と同サイズであり、例えば、図１３に示した所定サイズのビットマップ画像領域（例えば、２００×２００ピクセル）である。生成部１３０４は、ローカル座標系とグローバル座標系とが一致する場合は、いずれか一方の座標系の６方向について生成することになる。これにより、同一処理の重複を防止でき、処理の高速化を図ることができる。
同様に、ローカル座標系とグローバル座標系とが一致する場合、図１３に示したように、生成部１３０４は、第２の投影画像群として、投影画像（Ａ）〜（Ｆ）を生成する。この場合、選択モデル（例えば、図１３のＥリング１０１）は背景色（例えば、黒）と異なる色（白）で投影され、他のモデル（例えば、図１３のシャフト１０２）は背景色で投影される。従って、干渉状態の選択モデルの投影箇所のビットが計数されることになる。
【００５４】
算出部１３０５は、生成部１３０４によって生成された第１および第２の投影画像群を、複数の方向から選ばれた検証方向が同一である投影画像どうしで比較することにより、投影画像どうしの一致度を示すスコアを検証方向ごとに算出する。図１３を例に挙げて詳細に説明する。なお、ここでは、図１３の座標系をローカル座標系として説明する。
【００５５】
複数の方向から選ばれた検証方向とは、図１３の場合、＋Ｘ〜−Ｚから順次選ばれる方向である。算出部１３０５は、検証方向が同一である投影画像どうしを比較する。例えば、算出部１３０５は、検証方向が＋Ｘである場合、投影画像（ａ），（Ａ）を比較し、検証方向が−Ｘである場合、投影画像（ｂ），（Ｂ）を比較する。例えば、以下のように比較される。
【００５６】
図１３において、投影画像（ａ）〜（ｆ）のうち選択モデルであるＥリングの画像を示す白色のビット数の計数結果ＷＢ１を、それぞれ、
ＷＢ１（ａ）＝  ２０００
ＷＢ１（ｂ）＝  ２０００
ＷＢ１（ｃ）＝  ２０００
ＷＢ１（ｄ）＝  ２０００
ＷＢ１（ｅ）＝１３０００
ＷＢ１（ｆ）＝１３０００
とする。
【００５７】
また、図１３において、投影画像（Ａ）〜（Ｆ）のうち選択モデルであるＥリングの画像を示す白色のビット数の計数結果ＷＢ２を、それぞれ、
ＷＢ２（Ａ）＝２０００
ＷＢ２（Ｂ）＝１７００
ＷＢ２（Ｃ）＝２０００
ＷＢ２（Ｄ）＝１７００
ＷＢ２（Ｅ）＝９０００
ＷＢ２（Ｆ）＝９５００
とする。
【００５８】
次に、算出部１３０５は同一方向どうしで６軸方向のスコア（６軸スコア）を算出する。一例として、各軸方向のスコアは、下記式（１）により算出される。
【００５９】
スコアＢｐ＝（ＷＢ１／ＷＢ２）×１００・・・（１）
【００６０】
従って、検証方向ごとのスコアＢｐは以下のようになる。
Ｂｐ（＋Ｘｌ）＝１００
Ｂｐ（−Ｘｌ）＝  ８５
Ｂｐ（＋Ｙｌ）＝１００
Ｂｐ（−Ｙｌ）＝  ８５
Ｂｐ（＋Ｚｌ）＝  ７０
Ｂｐ（−Ｚｌ）＝  ７３
【００６１】
第２の投影画像群は他のモデルとの干渉状態を示しており干渉部分が黒のビットとなるため、スコアＢｐは１００以下の得点となる。第２の投影画像においても干渉状態にならない場合は、最高得点の１００となる。このように、スコアＢｐが高いほど、第１の投影画像における選択モデルの投影箇所（白のビット）と第２の投影画像における選択モデルの投影箇所（白のビット）との一致数が高くなる。換言すれば、一致数が高いということは、その検証方向の逆方向に選択モデルと干渉する箇所が少ないことを意味する。従って、選択モデルが検証方向の逆方向に抜ける可能性が高くなる。上記の例では、＋Ｘ方向および＋Ｙ方向のスコアＢｐがともに１００であるため、その逆方向である−Ｘ方向または−Ｙ方向に分解できる可能性が高いことを示している。
【００６２】
判定部１３０６は、方向判定部１３６１と、干渉判定部１３６２とを有する。
【００６３】
方向判定部１３６１について説明する。方向判定については、「組付け作業」と考えると、同一の組付方向が連続していた方が好ましく、組付先のモデルの無駄な回転や反転を控える方に加点するという考え方から加点処理として実行される。従って、方向判定部１３６１は、前回の選択モデルで決定された分解方向を、前回の選択モデルの部品情報５００またはアセンブリ情報６００から確認する。そして、検証方向と逆方向である場合、算出部１３０５は、加点スコアＡＰ３をスコアＢｐに加算することになる。
【００６４】
干渉判定部１３６２について説明する。干渉判定は、干渉の発生自体が、組付の可否、または分解の可否の直接の要因とはならないが、分解方向の決定精度を高めるための処理として実行される。特に、干渉判定は、工業製品内に多く使われるＥリング１０１やカーテンレールのスライド部品のように、モデル形状が凹形状である場合に有効である。このような形状のモデルが、リングの軸方向に分解するように見えても、実際の組立では軸に垂直方向へ抜くモデルである場合、抜き方向（分解方向）の決定精度を高めることができる。
【００６５】
干渉判定部１３６２は、選択モデルを、検証方向の逆方向に、検証モデルの検証方向での長さを超えない所定量移動させることにより、移動前後で干渉するか否かを判定する。具体的には、例えば、干渉判定部１３６２では、検証方向の座標系での選択モデルのバウンディングボックスを求める。なお、バウンディングボックスとは、３次元の直交座標系において、選択モデルを囲む最小の直方体という。バウンディングボックスの一例を図１４に示す。図１４に示すバウンディングボックスは、図３に示すアセンブリ４００のバウンディングボックスである。
次に、干渉判定部１３６２は、バウンディングボックスからパラメタ群（高さ、幅、奥行き）を計算する。そして、干渉判定部１３６２は、パラメタ群のうち検証方向と同一方向のパラメタの値の長さの１／４または１／２だけ、検証方向とは逆方向となる分解方向に選択モデルを移動させる。干渉判定部１３６２は、移動前の選択モデルと移動後の選択モデルとで干渉チェックを実行する。
【００６６】
図１５は、干渉判定例を示す説明図である。図１５では、選択モデルとしてＥリング１０１を例に挙げて説明している。図１５では、検証方向Ｄ（ｊ）の逆方向に、検証方向と同一方向のパラメタの値Ｌの１／２を移動させた例である。また、図１５中、Ｂ１は移動前のバウンディングボックス、Ｂ２は移動後のバウンディングボックス、Ｍ１は移動前の選択モデル、Ｍ２は移動後の選択モデルである。また、Ｍ０は、選択モデルＭの組付先のモデルである。
図１５（Ａ）の場合、選択モデルＭ１を検証方向Ｄ（ｊ）の逆方向に移動させると、移動後のモデルＭ２は、組付先のモデルＭ０と干渉しない。従って、検証方向Ｄ（ｊ）のスコアＢｐに加点スコアＡＰ４が加点されることになる。一方、図１５（Ｂ）の場合、選択モデルＭ１を検証方向Ｄ（ｊ）の逆方向に移動させると、移動後のモデルＭ２は、組付先のモデルＭ０と干渉する。従って、検証方向Ｄ（ｊ）のスコアＢｐに加点スコアＡＰ４が加点されないことになる。干渉判定部１３６２で干渉していないと判定された場合は、算出部１３０５は、加点スコアＡＰ４をスコアＢｐに加算することになる。
【００６７】
決定部１３０７は、算出部１３０５によって算出されたスコア群の中で最大スコアとなる投影画像の検証方向の逆方向を、アセンブリデータから選択モデルを分解する分解方向に決定する。決定部１３０７は、決定した分解方向を選択モデルに関連付けて記憶部１３０１に記憶させる。例えば、決定部１３０７は、ローカル座標系の６方向およびグローバル座標系の６方向の計１２方向から得られたスコアＢｐのうち、最大スコアとなる投影画像を投影した検証方向の逆方向を、分解方向に決定する。決定部１３０７は、また、最大スコアとなる投影画像を投影した検証方向を、組付方向に決定する。決定部１３０７は、決定された分解方向および組付方向を、選択モデルの部品情報５００またはアセンブリ情報６００の最優先方向の項目に保存する。
【００６８】
設定部１３０８は、視点設定部１３８１と移動量設定部１３８２とを有する。視点設定部１３８１は、選択モデルの分解方向の注視点が同じでかつ方向が異なる視点方向の視点を設定し、選択モデルに関連付けて記憶部１３０１に記憶させる。分解方向からの視点では、奥行き方向にモデルが移動するため、アニメーションとしては分かり辛い。そのため、視点設定部１３８１は、例えば、天頂角と方位角をそれぞれ所定角度（例えば３０度）傾けた位置の座標値を視点として、部品情報５００またはアセンブリ情報６００の視点の項目に保存する。
【００６９】
移動量設定部１３８２は、選択モデルの分解方向の長さに基づいて、選択モデルを分解方向に移動させる移動量を設定し、選択モデルに関連付けて記憶部１３０１に記憶させる。具体的には、例えば、移動量設定部１３８２は、選択モデルの分解方向の座標系で選択モデルのバウンディングボックスのパラメタ群（高さ、幅、奥行き）を計算する。そして、移動量設定部１３８２は、パラメタ群のうち選択モデルの分解方向と同一方向となるパラメタの値を所定倍（例えば３倍）して、移動量に設定する。
図１６は、移動量の設定例を示す説明図である。図１６において、Ｍ０が組付先のモデルであり、Ｍ１が選択モデルである。図１６では、選択モデルＭ１のバウンディングボックスにおける分解方向の長さを２００とする。この場合、例えば、２００×３＝６００が移動量となる。このように、選択モデルの分解方向と同一方向となるパラメタの値を所定倍して移動量を設定することで、アセンブリから選択モデルが十分離されるため、分解されたことを容易に視認することができる。
【００７０】
次に、変化点検出部１３１０、標準時間算出部１３１１について説明する前に、情報生成装置１３００が生成して、再生部１３０９で再生するアニメーションについて説明する。
情報生成装置１３００が生成するアニメーションには、２種類のアニメーションがある。１つ目のアニメーションは、製品を組み立てる作業員の視点から製品の組み立て手順を映したアニメーション（以下、第１アニメーションという）である。すなわち、第１アニメーションは、作業員が作業位置に立って実際に製品の組み立て作業を行う際に、製品がどのような見え方をするのかを表したアニメーションである。
図１７に、ローカル座標系Ｃｌ３（Ｘｌ３，Ｙｌ３，Ｚｌ３）の原点位置に配置した部品Ｓ０と、部品Ｓ０を見る作業員２０とを示す。図１７に示す例では、作業員２０の目の位置（視点位置）にカメラ１０があるものと想定している。この作業員２０の視点位置からローカル座標系Ｃｌ３（Ｘｌ３，Ｙｌ３，Ｚｌ３）の原点（注視点）に向けられた視線に映る製品のアニメーションが第１アニメーションになる。なお、第１アニメーションでは、視点位置は、事前に設定された所定位置に固定されている。視点位置の座標値は、視点位置情報として記憶部１３０１に記憶されている。
【００７１】
２つ目のアニメーションは、作業員に製品の組み立て手順を理解させるためのアニメーションである（以下、第２アニメーションという）。第２アニメーションでは、作業員に製品の組み立て手順を理解させるため、部品の組み付けが分かりやすい位置に視点位置が移動する。すなわち、組み付ける部品ごとに視点位置（カメラ位置）の変更が必要か否かを視点設定部１３８１が判定し、視点位置の変更が必要と判断した場合には、前回の部品の組み付けの際の視点位置から視点位置を変更する。例えば、図１８（Ａ）に示す部品Ｍ０に部品Ｍ１を組み付けるアニメーションを生成するものとする。図１８（Ａ）に示すカメラ１０の位置を視点位置に設定した場合、カメラ１０の撮影方向、すなわち視線の方向が部品Ｍ１の移動方向に一致している。従って、図１８（Ｂ）に示すように、組み付け前のアニメーションと組み付け後のアニメーションとに変化がないことになる。このため、図１９に示すように、必要がある場合には、視点位置（カメラ位置）を変更して、作業員が部品の組み付けを理解できる視点位置の視点座標値を部品情報５００、アセンブリ情報６００として記録しておく。これにより、アニメーションの再生の際には、作業員が組み立て方法を理解しやすいアニメーションとなる。
【００７２】
作業員２０は、第１及び第２アニメーションを参照して製品の組み立て作業を行うため、アニメーションの視点位置に変化があると、実際の作業においても作業員２０の姿勢や立ち位置に変化が生じる場合がある。作業員２０の姿勢や立ち位置に変化が生じると、実際の作業時間に遅延が生じる場合があり、実際の作業時間と、シミュレーションによって算出する作業時間とにずれが生じることになる。
【００７３】
図２０には、グローバル座標系Ｃｇの空間上に配置された２つの部品Ｐｐ（Ｘｐ，Ｙｐ，Ｚｐ）、部品Ｐｑ（Ｘｑ，Ｙｑ，Ｚｑ）と、作業員の視点位置Ｐｃ（Ｘｃ，Ｙｃ，Ｚｃ）とを示す。なお、図２０には、視点位置Ｐｃに、カメラ１０を配置している。
例えば、不図示のアセンブリに、部品Ｐｐと部品Ｐｑとを組み付ける作業を行うものとする。第１又は第２アニメーションに従って、最初に、作業者の作業位置から遠い位置（Ｘｐ，Ｙｐ，Ｚｐ）で部品Ｐｐをアセンブリ（不図示）に組み付ける作業を行い、その後に、作業位置から近い位置（Ｘｑ，Ｙｑ，Ｚｑ）で部品Ｐｑを組み付ける作業を行うものとする。この場合、図２０に示すように視線の方向が大きく変化するため、作業員の立ち位置や態勢にも変化が生じ、実際の作業時間と、シミュレーションによって算出する製品の組み立て時間の推定値（以下、標準時間という）とにずれが生じる場合がある。
【００７４】
シミュレーションによって算出する標準時間と、実際の作業時間とのずれを低減するため、本実施形態では、変化点検出部１３１０が第１及び第２アニメーションの視点の変化を検出する。標準時間算出部１３１１は、変化点検出部１３１０が検出した第１及び第２アニメーションの視点の変化に基づいて、製品の組み立て時間の推定値を算出する。
【００７５】
変化点検出部１３１０は、第１アニメーションにおいては、製品の位置の変化を検出して、第１アニメーションの視点の変化を検出する。具体的には、変化点検出部１３１０は、製品の位置の変化を、作業者視距離と作業者視線角度とから検出する。また、変化点検出部１３１０は、第２アニメーションにおいては、視点位置又は製品の位置の変化を検出して、第２アニメーションの視点の変化を検出する。具体的には、変化点検出部１３１０は、視点位置又は製品の位置の変化を、天頂角、方位角、視点角及び作業指示注視点距離から検出する。これらの処理の詳細について以下に説明する。
【００７６】
上述のように部品情報５００、アセンブリ情報６００には、相対座標値、視点の項目が設けられている。また、記憶部１３０１は、第１アニメーションの視点位置の座標値を、視点位置情報として記憶している。変化点検出部１３１０は、これらの値を参照して、天頂角と、方位角と、視点角と、作業指示注視点距離と、作業者視距離と、作業者視線角度とを製造フローのモデルごとに算出する。変化点検出部１３１０は、算出した作業者視距離、作業者視線角度、天頂角、方位角、視点角及び作業指示注視点距離を、図２１に示す標準時間算出用テーブルに記録する。標準時間算出用テーブルには、モデルを示す製造フローの各ノードに対応させて、天頂角と、方位角と、視点角と、作業指示注視点距離と、作業者視距離と、作業者視線角度とを記録する記録欄が設けられている。標準時間算出用テーブルは、記憶部１３０１に記憶されている。なお、以下では、作業者視距離と、作業者視線角度とを第１アニメーション情報という。また、天頂角、方位角、視点角及び作業指示注視点距離とを第２アニメーション情報という。
【００７７】
まず、図２２を参照しながら、第１アニメーション情報である作業者視距離と作業者視線角度とについて説明する。図２２には、部品Ｐｐを配置したローカル座標系（Ｃｌ３）と、グローバル座標系Ｃｇと、作業員２０とを示す。作業者視距離は、部品Ｐｐを配置したローカル座標系Ｃｌ３の原点Ｑ３と、作業者の視点位置との距離を示している。第１アニメーションの場合、作業者の視点位置に変化はない。部品Ｐｐのローカル座標系Ｃｌ３の原点Ｑ３が移動すれば、作業者視距離も変化する。
また、作業者視線角度は、グローバル座標系Ｃｇの原点Ｑ０と部品Ｐｐのローカル座標系Ｃｌ３の原点Ｑ３とを結ぶベクトルと、グローバル座標系Ｃｇの原点Ｑ０と作業者の視点位置とを結ぶベクトルとのなす角度θ１である。作業者視線角度θ１も、部品のローカル座標系の原点位置に変更があれば変化する。
【００７８】
次に、図２３を参照しながら方位角、天頂角及び作業指示注視点距離について説明する。なお、図２３には、グローバル座標系Ｃｇと、このグローバル座標系Ｃｇ上の空間に配置された部品Ｐｐ（Ｘｐ，Ｙｐ，Ｚｐ）と、視点位置Ｐｃ（Ｘｃ，Ｙｃ，Ｚｃ）とを示す。
方位角θ２は、部品Ｐｐ（Ｘｐ，Ｙｐ，Ｚｐ）と視点位置Ｐｃ（Ｘｃ，Ｙｃ，Ｚｃ）とを結ぶベクトルと、グローバル座標系ＣｇのＹ軸（Ｙｇ）とのなす角度を示している。すなわち、方位角θ２は、グローバル座標系ＣｇのＹ軸を基準にしたＺ軸（Ｚｇ）まわりの回転角度であり、部品Ｐｐの位置に応じて０．０°〜３５９．９°の範囲で設定される。また、天頂角θ３は、部品Ｐｐ（Ｘｐ，Ｙｐ，Ｚｐ）と視点位置Ｐｃ（Ｘｃ，Ｙｃ，Ｚｃ）とを結ぶベクトルと、グローバル座標系ＣｇのＺ軸（Ｚｇ）とのなす角度を示している。すなわち、天頂角θ３は、グローバル座標系ＣｇのＺ軸（Ｚｇ）から、グローバル座標系ＣｇのＸｇＹｇ平面へ倒れていく角度であり（例えば、図２４（Ａ）のθ３参照）、部品Ｐｐの位置に応じて０．０°〜１８０．０°の範囲で設定される。また、作業指示注視点距離は、部品Ｐｐ（Ｘｐ，Ｙｐ，Ｚｐ）と視点位置Ｐｃ（Ｘｃ，Ｙｃ，Ｚｃ）とを結ぶベクトルの距離を示している。
【００７９】
次に、図２４を参照しながら視点角について説明する。図２４（Ａ）には、部品Ｐｐを、部品Ｐｐのローカル座標系（Ｃｌ３）の原点Ｑ３に配置した状態を示す。なお、部品Ｐｐのローカル座標系（Ｃｌ３）の原点Ｑ３の位置は、グローバル座標系Ｃｇの原点Ｑ０から、ローカル座標系（Ｃｌ３）の原点Ｑ３までの距離ｒと、方位角θ２と、天頂角θ３とに基づいて決定される。図２４（Ａ）に示す状態を初期状態と呼ぶ。
図２４（Ｂ）には、図２４（Ａ）に示す初期状態から視点角を調整した状態を示す。視点角とは、部品Ｐｐの組み付け等の作業を、作業員が見やすいように、ローカル座標系（Ｃｌ３）の座標軸を回転させた角度を示す。図２４（Ｂ）では、部品Ｐｐのローカル座標系（Ｃｌ３）のＺ軸（Ｚｌ３）が、グローバル座標系ＣｇのＺ軸（Ｚｇ）に対してθ４回転した状態が示されている。この回転角θ４が視点角となる。視点角θ４は、回転後のローカル座標系のＺ軸の、グローバル座標系ＣｇのＺ軸（Ｚｇ）に対する角度であり、０．０°〜３５９．９°の範囲で設定される。なお、部品やアセンブリに設定された視点角は、部品情報５００又はアセンブリ情報６００として記憶部１３０１に記憶される。
【００８０】
次に、標準時間の算出方法の一例について説明する。変化点検出部１３１０は、まず、部品情報５００、アセンブリ情報６００として記録された視点位置情報、相対座標値、視点角を参照する。また、変化点検出部１３１０は、記憶部１３０１に記憶した第１アニメーションの視点位置情報を参照する。変化点検出部１３１０は、これらの情報を参照して、天頂角、方位角、視点角、作業指示注視点距離、作業者視距離及び作業者視線角度を製造フローのモデルごとに算出する。これらの値は、図２２〜図２４を参照して説明したように、グローバル座標系Ｃｇの原点位置と、相対座標値（ローカル座標系の原点位置）と、視点位置とが分かれば算出することができる。なお、視点角は、事前に記憶部１３０１に記憶しているものを使用する。変化点検出部１３１０は、該当モデルを表すノードの天頂角、方位角、視点角、作業指示注視点距離、作業者視距離及び作業者視線角度の記録欄に、算出したそれぞれの値を記録する。
【００８１】
次に、変化点検出部１３１０は、標準時間算出用テーブルを参照して、第１アニメーション情報及び第２アニメーション情報に変化があるか否かを判定する。
変化点検出部１３１０は、まず、処理対象のノードを選択する。変化点検出部１３１０は、最下位の階層の１つ上の階層のノードであって、モデルを表すノードを選択する。例えば、図７（Ｂ）に示す製造フローにおいては、最下位の階層のモデルを表すノードがＡ０であるため、その１つ上位層のＡ１を選択する。下位の階層のノードから選択するのは、ノード番号の昇順が組み立て順であるためである。また、最下位の階層のノードは、最初の組み立てシーンを表すアニメーションとなるため、視点位置に変化は生じない。このため、最下位の階層のノードは処理対象から除外される。処理対象のノードを選択すると、変化点検出部１３１０は、選択した処理対象のノードの作業者視距離を標準時間算出用テーブルから取り出す。また、変化点検出部１３１０は、製造フローにおいて処理対象ノードの１つ下の階層のモデルを表すノードの作業者視距離を標準時間算出用テーブルから取り出す。図７（Ｂ）に示す製造フローを例に説明すると、処理対象のノードがＡ１であると、変化点検出部１３１０は、Ａ１の下のＡ０のノードに記録された作業者視距離を標準時間算出用テーブルから取り出す。そして、変化点検出部１３１０は、処理対象のノードの作業者視距離と、処理対象のノードの１つ下の階層のノードの作業者視距離との差分を算出し、作業者視距離に変化があるか否かを判定する。作業者視距離に差分を検出した場合、変化点検出部１３１０は、算出した差分を記憶部１３０１に記憶させる。変化点検出部１３１０は、この処理を、最上位の階層のノードまで繰り返す。また、変化点検出部１３１０は、作業者視線角度、天頂角、方位角、視点角、作業指示注視点距離、作業者視距離についても同様に、ノード間の差分を算出する。
【００８２】
次に、標準時間算出部１３１１の処理について説明する。標準時間算出部１３１１は、変化点検出部１３１０が算出した差分値の項目ごとの和を求める。標準時間算出部１３１１は、天頂角、方位角、視点角、作業指示注視点距離、作業者視距離、作業者視線角度の項目ごとに、差分値の和を求める。また、標準時間算出部１３１１は、各項目の差分値の和に所定の係数を積算して、差分値の和（累積値）から求められる誤差時間の推定値をそれぞれに算出する。すなわち、差分値の和を項目ごとに求めることで、第１アニメーションにおいて作業者視距離や作業者視線角度の変化量の累積値を求める。また、第２アニメーションにおいて天頂角、方位角、視点角及び作業指示注視点距離の変化量の累積値を求める。求めた変化量の累積値に所定の係数を積算することで、作業者視距離や作業者視線角度の変化によって生じる作業の遅延時間の推定値を算出する。同様に、求めた変化量の累積値に所定の係数を積算することで、天頂角、方位角、視点角及び作業指示注視点距離の変化によって生じる作業の遅延時間の推定値を算出する。
【００８３】
標準時間算出部１３１１は、作業者視距離の差分値の和に係数Ａ１を積算して、作業者視距離の変化によって生じる誤差時間の推定値を算出する（以下、作業者視距離誤差時間と呼ぶ）。また、標準時間算出部１３１１は、作業者視線角度の差分値の和に係数Ａ２を積算して、作業者視線角度の変化によって生じる誤差時間の推定値を算出する（以下、作業者視線角度誤差時間と呼ぶ）。また、標準時間算出部１３１１は、天頂角の差分値の和に係数Ａ３を積算して、天頂角の変化によって生じる誤差時間の推定値を算出する（以下、天頂角誤差時間と呼ぶ）。また、標準時間算出部１３１１は、方位角の差分値の和に係数Ａ４を積算して、方位角の変化によって生じる誤差時間の推定値を算出する（以下、方位角誤差時間と呼ぶ）。また、標準時間算出部１３１１は、視点角の差分値の和に係数Ａ５を積算して、視点角の変化によって生じる誤差時間の推定値を算出する（以下、視点角誤差時間と呼ぶ）。また、標準時間算出部１３１１は、作業指示注視点距離の差分値の和に係数Ａ６を積算して、作業指示注視点距離の変化によって生じる作業指示注視点距離の誤差時間を算出する（以下、作業指示注視点距離誤差時間と呼ぶ）。
【００８４】
さらに標準時間算出部１３１１は、算出した作業者視距離誤差時間と作業者視線角度誤差時間とを加算し、加算した値を、第１アニメーションにおける誤差時間の推定値として算出する。同様に、標準時間算出部１３１１は、天頂角誤差時間と、方位角誤差時間と、視点角誤差時間と、作業指示注視点距離誤差時間とを加算し、加算した値を、第２アニメーションにおける誤差時間の推定値として算出する。
上述したように作業員２０は、第１及び第２アニメーションを参照して製品の組み立て作業を行う。このため、第１アニメーションにおける作業者視距離や作業者視線角度の変化や、第２アニメーションにおける天頂角、方位角、視点角又は作業指示注視点距離の変化が、作業員に影響する場合がある。作業員の立ち位置や態勢の変化は、作業時間の遅延につながる場合がある。このため、標準時間算出部１３１１は、算出した第１アニメーションにおける誤差時間及び第２アニメーションにおける誤差時間の推定値を使用して、シミュレーション上の作業時間である標準時間を算出する。
【００８５】
出力部１３１２は、標準時間算出部１３１１が算出した標準時間を記憶部１３０１から取得し、取得した標準時間をディスプレイ１２０８に出力して表示させたり、プリンタ１２１３に出力してプリンタ１２１３に印刷させる。
【００８６】
＜情報生成処理＞
図２５は、情報生成装置１３００による情報生成処理の詳細な処理手順を示すフローチャートである。
情報生成装置１３００は、情報設定処理（ステップＳ２００１）と、標準時間算出処理（ステップＳ２００２）と、再生処理（ステップＳ２００２）とを実行する。
情報生成装置１３００は、複数の部品を備えた製品を各部品に分解する分解経路をシミュレーションにより探索し、この分解経路を逆さ向きにたどることで、その製品を構成する複数の部品の組立経路を生成する。情報設定処理では、選択モデルごとに分解方向および組付方向、視点、移動量が設定される。また、標準時間算出処理では、シミュレーションにより、作業者視距離、作業者視線角度、天頂角、方位角、視点角、作業指示注視点距離を考慮した標準時間を算出する。なお、算出した標準時間は、ディスプレイ１２０８に表示させてもよいし、プリンタ１２１３により印刷出力してもよい。再生処理では、情報設定処理で設定された情報を用いて、第１アニメーションと第２アニメーションとの少なくとも一方を再生する。
【００８７】
図２６は、図２５に示した情報設定処理（ステップＳ２１０１）の詳細な処理手順を示すフローチャートである。まず、情報生成装置１３００は、対象アセンブリが指定されるのを待ち受ける（ステップＳ２１０１／ＮＯ）。例えば、情報生成装置１３００は、製造フローの中から対象アセンブリがユーザ操作により指定されるのを待ち受ける。
【００８８】
対象アセンブリが指定された場合（ステップＳ２１０１／ＹＥＳ）、情報生成装置１３００は、対象アセンブリの直下の階層のモデル数Ｎを検出する（ステップＳ２１０２）。具体的には、例えば、対象アセンブリのアセンブリ情報６００における直下の構成モデル数項目に記録されている値を抽出する。この値が、対象アセンブリについての分解製造フロー内のモデル数と一致することになる。
【００８９】
次に、情報生成装置１３００は、磁気ディスク１２０５、光ディスク１２０７等の記憶装置に記憶されている分解製造フロー群から対象アセンブリの分解製造フローを特定する。そして、情報生成装置１３００は、特定したリスト構造を取得する（ステップＳ２１０３）。例えば、対象アセンブリがＡ０の場合、図８の分解製造フロー９０１に対応するリスト構造１１０１（図１０）を取得する。そして、情報生成装置１３００は、カウンタのインデックスｉをｉ＝１とし（ステップＳ２１０４）、ｉ＞Ｎであるか否かを判断する（ステップＳ２１０５）。すなわち、情報生成装置１３００が、取得したリスト構造内のモデルをすべて選択したか否かを判断することになる。
【００９０】
ｉ＞Ｎでない場合（ステップＳ２１０５／ＮＯ）、情報生成装置１３００は、対象アセンブリのリスト構造の未選択ノードのうち最後尾のノードを選択する（ステップＳ２１０６）。ノードの選択順は任意でもよいが、最後尾のノードから選択することで、製造フローにおいて最後に組み付けられたモデルから順に選択することができる。そして、情報生成装置１３００は、選択ノードから種別フラグを抽出し（ステップＳ２１０７）、選択ノードがモデルであるか否かを判断する（ステップＳ２１０８）。種別フラグが「０」または「１」であればモデル、「２」は工程であるため、モデルではない。
【００９１】
このあと、選択ノードがモデルでないと判断された場合（ステップＳ２１０８／ＮＯ）、ステップＳ２１１２に移行する。一方、選択ノードがモデルであると判断された場合（ステップＳ２１０８／ＹＥＳ）、情報生成装置１３００は、分解方向の検出を行う（ステップＳ２１０９）。
分解方向の検出は、モデルであると判断された選択ノード、すなわち、選択モデルの分解方向を検出する処理である。図１２に示す選択部１３０３、生成部１３０４、算出部１３０５、判定部１３０６、決定部１３０７で実施される。
分解方向の検出が終了すると、情報生成装置１３００は、視点の設定を行う（Ｓ２１１０）。視点の設定は、選択モデルの視点を設定する処理であり、図１２に示す視点設定部１３８１で設定される。視点の設定が終了すると、情報生成装置１３００は、移動量の設定を行う（ステップＳ２１１１）。移動量の設定は、選択モデルの移動量を設定する処理であり、図１２に示す移動量設定部１３８２で設定される。
【００９２】
ステップＳ２１１２では、カウンタのインデックスｉをインクリメントして（ステップＳ２１１２）、ステップＳ２１０５に戻る。そして、ステップＳ２１０５において、ｉ＞Ｎと判断された場合（ステップＳ２１０５／ＹＥＳ）、図２５に示した標準時間算出処理に移行する。
【００９３】
次に、図２７、図２８を参照しながら標準時間算出処理の詳細について説明する。なお、Ｓ２２０７の選択ノードから種別フラグを抽出するまでの手順は、図２６に示すフローと同一であるため説明を省略する。
情報生成装置１３００は、選択ノードから種別フラグを抽出し（ステップＳ２２０７）、選択ノードがモデルであるか否かを判断する（ステップＳ２２０８）。このあと、選択ノードがモデルでないと判断された場合（ステップＳ２２０８／ＮＯ）、ステップＳ２２１０に移行する。選択ノードがモデルである場合（ステップＳ２２０８／ＹＥＳ）、情報生成装置１３００は、選択ノードの部品情報５００又はアセンブリ情報６００として記録された視点位置情報と、相対座標値と、視点角とを取得する。また、第１アニメーションにおける視点位置情報を記憶部１３０１から取得する。次に、情報生成装置１３００は、視点位置情報と、相対座標値と、視点角とを参照して、天頂角、方位角、視点角、作業指示注視点距離、作業者視距離、作業者視線角度を算出する（ステップＳ２２０９）。なお、視点角については、記憶部１３０１から取得したものをそのまま使用すればよい。情報生成装置１３００は、算出した角度や距離の情報を、図２１に示す標準時間算出用テーブルに記録する（ステップＳ２２０９）。情報生成装置１３００は、視点位置情報や相対座標値を取得した部品情報５００又はアセンブリ情報６００に該当するノードの記録欄に、算出した算出した角度や距離の情報を記録する。その後、情報生成装置１３００は、カウンタのインデックスｊをインクリメントして（ステップＳ２２１０）、ステップＳ２２０５に移行する。ステップＳ２２０５において、カウンタのインデックスｊがＮよりも大きい場合、情報生成装置１３００は、図２８に示すフローに移行する。また、カウンタのインデックスｊがＮ以下であった場合には、情報生成装置１３００は、ステップＳ２２０６〜２２１０の処理を繰り返す。
【００９４】
次に、図２８に示すフローチャートを参照しながら、ステップＳ２２０５の判定が肯定判定であった場合の処理フローを説明する。
ステップＳ２２０５の判定が肯定判定であった場合、情報生成装置１３００は、図２１に示す標準時間算出用テーブルを参照して、モデルのノードを選択する（ステップＳ２２１１）。図２１に示す製造フローに三角形で示すフロー記号が、モデルのノードを示す。情報生成装置１３００は、モデルのノードを選択すると、選択したモデルのノードの下位に、他のモデルのノードが存在するか否かを判定する（ステップＳ２２１２）。図９に示すノード番号の昇順が組み立て順であるため、情報生成装置１３００は、選択したモデルのノードの下位に、他のモデルのノードが存在するか否かを判定する。情報生成装置１３００は、選択ノードに下位ノードが存在すると判断すると（ステップＳ２２１２／ＹＥＳ）、標準時間算出用テーブルを参照して、選択ノードと、選択ノードの下位ノードとの差分値を算出する（ステップＳ２２１３）。差分値を求める項目は、標準時間算出用テーブルに記録された、天頂角、方位角、視点角、作業指示視点距離、作業者視距離及び作業者視線角度の各項目である。情報生成装置１３００は、各項目で求めた差分値を記憶部１３０１に記憶させる。
次に、情報生成装置１３００は、全てのモデルのノードを選択ノードとして選択したか否かを判断する（ステップＳ２２１４）。全てのモデルのノードを選択ノードとして選択した場合には、情報生成装置１３００は、ステップＳ２２１５の処理に移行する。また、全てのモデルのノードを選択ノードとして選択していない場合には、情報生成装置１３００は、ステップＳ２２１１からＳ２２１４までの処理を繰り返す。
【００９５】
Ｓ２２１４の判定が肯定判定である場合、情報生成装置１３００は、算出した各差分値に係数を積算して、作業者視距離及び作業者視線角度の誤差時間の推定値を算出する（ステップＳ２２１５）。情報生成装置１３００は、作業者視距離の差分値の和に、係数Ａ１を積算して、作業者視距離誤差時間を算出する。また、情報生成装置１３００は、作業者視線角度の差分値に和に、係数Ａ２を積算して、作業者視距離誤差時間を算出する（ステップＳ２２１５）。また、情報生成装置１３００は、算出した各差分値に係数を積算して、天頂角と、方位角と、視点角と、作業指示視点距離との誤差時間の推定値を算出する（ステップＳ２２１６）。情報生成装置１３００は、天頂角の差分値の和に、係数Ａ３を積算して、天頂角誤差時間を算出する（ステップＳ２２１６）。また、情報生成装置１３００は、方位角の差分値の和に、係数Ａ４を積算して、方位角誤差時間を算出する（ステップＳ２２１６）。また、情報生成装置１３００は、視点角の差分値の和に、係数Ａ５を積算して、視点角誤差時間を算出する（ステップＳ２２１６）。また、情報生成装置１３００は、作業指示視点距離の差分値の和に、係数Ａ６を積算して、作業指示視点距離誤差時間を算出する（ステップＳ２２１６）。
【００９６】
次に、情報生成装置１３００は、ステップＳ２２１５で算出した作業者視距離誤差時間と、作業者視線角度誤差時間とを加算して、第１アニメーション情報の誤差時間の推定値を算出する（ステップＳ２２１７）。また、情報生成装置１３００は、天頂角誤差時間と、方位角誤差時間と、視点角誤差時間と、作業指示視点距離誤差時間とを加算して、第２アニメーション情報の誤差時間の推定値を算出する（ステップＳ２２１８）。
【００９７】
情報生成装置１３００は、算出した第１アニメーション情報の誤差時間の推定値と、第２アニメーション情報の誤差時間の推定値とを使用して、シミュレーションによる製品の組み立て時間の推定値を算出する（ステップＳ２２１９）。
【００９８】
以上、詳細に説明したように、本実施形態は、作業員が作業の際に参照するアニメーションにおいて、製品を映す視点位置や製品位置の変化を検出して、製品の組み立て時間の推定値を算出する。このため、シミュレーションにおいて算出する組み立て時間の推定値の精度を高めることができる。
【００９９】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  シミュレーションによって製品の組み立て時間を算出するプログラムであって、
コンピュータに、
前記製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得する手順と、
取得した前記アニメーションデータから、アニメーションの視点の変化を検出する手順と、
検出した前記アニメーションの視点の変化に基づいて、前記製品の組み立て時間の推定値を算出する手順と、
を実行させるためのプログラム。
（付記２）  前記推定値を算出する手順は、前記製品を映す視点位置を変更しながら、前記製品の組み立て手順を表示するアニメーションにおける前記視点位置又は前記製品の位置の変化と、前記製品の組み立て作業を行う作業員の視点位置から前記製品の組み立て手順を表示するアニメーションにおける前記製品の位置の変化との少なくとも一方を検出して、前記推定値を算出することを特徴とする付記１記載のプログラム。
（付記３）  シミュレーションによって製品の組み立て時間を算出する組立時間算出方法であって、
前記製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得する工程と、
取得した前記アニメーションデータから、アニメーションの視点の変化を検出する工程と、
検出した前記アニメーションの視点の変化に基づいて、前記製品の組み立て時間の推定値を算出する工程と、
を有することを特徴とする組立時間算出方法。
（付記４）  前記推定値を算出する工程は、前記製品を映す視点位置を変更しながら、前記製品の組み立て手順を表示するアニメーションにおける前記視点位置又は前記製品の位置の変化と、前記製品の組み立て作業を行う作業員の視点位置から前記製品の組み立て手順を表示するアニメーションにおける前記製品の位置の変化との少なくとも一方を検出して、前記推定値を算出することを特徴とする付記３記載の組立時間算出方法。
（付記５）  シミュレーションによって製品の組み立て時間を算出する組立時間算出装置であって、
前記製品の組み立て作業の手順をアニメーションで表示部に表示させるためのアニメーションデータを取得する手段と、
取得した前記アニメーションデータから、アニメーションの視点の変化を検出する手段と、
検出した前記アニメーションの視点の変化に基づいて、前記製品の組み立て時間の推定値を算出する手段と、
を備えることを特徴とする組立時間算出装置。
（付記６）  前記推定値を算出する手段は、前記製品を映す視点位置を変更しながら、前記製品の組み立て手順を表示するアニメーションにおける前記視点位置又は前記製品の位置の変化と、前記製品の組み立て作業を行う作業員の視点位置から前記製品の組み立て手順を表示するアニメーションにおける前記製品の位置の変化との少なくとも一方を検出して、前記推定値を算出することを特徴とする付記５記載の組立時間算出装置。
【符号の説明】
【０１００】
１３００  情報生成装置
１３０１  記憶部
１３０２  入力部
１３０３  選択部
１３０４  生成部
１３０５  算出部
１３０６  判定部
１３０７  決定部
１３０８  設定部
１３０９  再生部
１３１０  変化点検出部
１３１１  標準時間算出部
１３１２  出力部
【図１】
2014182557.tif 000003
【図２】
2014182557.tif 000004
【図３】
2014182557.tif 000005
【図４】
2014182557.tif 000006
【図５】
2014182557.tif 000007
【図６】
2014182557.tif 000008
【図７】
2014182557.tif 000009
【図８】
2014182557.tif 000010
【図９】
2014182557.tif 000011
【図１０】
2014182557.tif 000012
【図１１】
2014182557.tif 000013
【図１２】
2014182557.tif 000014
【図１３】
2014182557.tif 000015
【図１４】
2014182557.tif 000016
【図１５】
2014182557.tif 000017
【図１６】
2014182557.tif 000018
【図１７】
2014182557.tif 000019
【図１８】
2014182557.tif 000020
【図１９】
2014182557.tif 000021
【図２０】
2014182557.tif 000022
【図２１】
2014182557.tif 000023
【図２２】
2014182557.tif 000024
【図２３】
2014182557.tif 000025
【図２４】
2014182557.tif 000026
【図２５】
2014182557.tif 000027
【図２６】
2014182557.tif 000028
【図２７】
2014182557.tif 000029
【図２８】
2014182557.tif 000030