(57)【特許請求の範囲】
【請求項１】
組立品を組み立てるシーケンスを示す組立シーケンスに基づいて、前記組立品の組立の動作を示す組立アニメーションを生成する計算機システムであって、
前記組立アニメーションを生成するプロセッサと、
前記生成された組立アニメーションの情報を格納するメモリと、
前記プロセッサの制御に応答して、前記組立アニメーションを表示するディスプレイと、を有し、
前記プロセッサは、
前記組立品を構成する複数の部品の慣性テンソル情報を取得し、当該慣性テンソル情報から前記組立品の第一慣性主軸を算出し、
前記複数の部品間の近接関係を示す近接関係情報を取得し、
前記複数の部品の近接関係情報に基づいて、前記複数の部品のそれぞれが近接する部品と干渉しないような、前記組立シーケンス及び前記複数の部品の組み付け方向を示す組立運動ベクトルを生成し、
前記組立品を構成する部品の重心から前記組立品の重心を求め、前記第一慣性主軸と前記組立品の重心に基づいて、前記組立品の安定した姿勢を決定し、
前記第一慣性主軸の周りに、それぞれカメラ軸を有し、前記組立アニメーション生成の際の作業視野の候補となる複数のカメラ視点を配置し、
前記複数の部品のそれぞれについて、対象部品の前記組立運動ベクトルに最も方向が合致するカメラ視点を選択し、当該選択されたカメラ視点を前記対象部品の作業視野として設定し、
前記作業視野から前記組立アニメーションを生成することを特徴とする計算機システム。
【請求項２】
請求項１において、
前記プロセッサは、前記カメラで取得された前記組立アニメーションの画像に基づいて、指定された部品の組立前後の静止画像を含む作業指示図を生成することを特徴とする計算機システム。
【請求項３】
請求項１において、
前記プロセッサは、前記第一慣性主軸が垂線となる平面に対して所定角度をなすように前記複数のカメラ視点を配置し、前記それぞれの部品の前記組立運動ベクトルと所定角度をなす前記カメラ視点を前記対象部品の作業視野の候補とすることを特徴とする計算機システム。
【請求項４】
請求項１において、
前記プロセッサは、前記複数の部品の分解順序を決定し、当該分解順序で前記複数の部品のそれぞれの分解運動ベクトルを生成し、当該分解運動ベクトルの符号を反転させて前記組立運動ベクトルを生成することを特徴とする計算機システム。
【請求項５】
請求項４において、
前記プロセッサは、前記分解順序の逆を組立順序として、前記組立シーケンスを生成することを特徴とする計算機システム。
【請求項６】
請求項１において、
前記プロセッサは、指示入力に応答して、前記組立品を構成する複数の部品のうち同時に組立を行う部品の集合である組立単位を設定し、当該組立単位の前記第一慣性主軸に基づいて安定的な設置姿勢を決定し、当該安定的な設置姿勢の前記組立単位における各部品に対して、前記作業視野を設定することを特徴とする計算機システム。
【請求項７】
請求項１において、
前記プロセッサは、前記選択されたカメラ視点におけるカメラ姿勢を調整するための調整用インタフェースを画面上に表示するように前記ディスプレイを制御することを特徴とする計算機システム。
【請求項８】
計算機システムを用い、組立品を組み立てるシーケンスを示す組立シーケンスに基づいて、前記組立品の組立の動作を示す組立アニメーションを生成する組立アニメーション生成方法であって、
前記計算機システムが有するプロセッサが、前記組立品を構成する複数の部品の慣性テンソル情報を取得し、当該慣性テンソル情報から前記組立品の第一慣性主軸を算出するステップと、
前記プロセッサが、前記複数の部品間の近接関係を示す近接関係情報を取得するステップと、
前記プロセッサが、前記複数の部品の近接関係情報に基づいて、前記複数の部品のそれぞれが近接する部品と干渉しないような、前記組立シーケンス及び前記複数の部品の組み付け方向を示す組立運動ベクトルを生成するステップと、
前記プロセッサが、前記組立品を構成する部品の重心から前記組立品の重心を求め、前記第一慣性主軸と前記組立品の重心に基づいて、前記組立品の安定した姿勢を決定するステップと、
前記プロセッサが、前記第一慣性主軸の周りに、それぞれカメラ軸を有し、前記組立アニメーション生成の際の作業視野の候補となる複数のカメラ視点を配置するステップと、
前記プロセッサが、前記複数の部品のそれぞれについて、対象部品の前記組立運動ベクトルに最も方向が合致するカメラ視点を選択し、当該選択されたカメラ視点を前記対象部品の作業視野として設定するステップと、
前記プロセッサが、前記作業視野から前記組立アニメーションを生成し、ディスプレイ画面上に表示するステップと、
を有することを特徴とする組立アニメーション生成方法。
【請求項９】
請求項８において、
さらに、前記プロセッサが、前記カメラで取得された前記組立アニメーションの画像に基づいて、指定された部品の組立前後の静止画像を含む作業指示図を生成するステップを有することを特徴とする組立アニメーション生成方法。
【請求項１０】
請求項８において、
前記選択されたカメラ視点を前記対象部品の作業視野として設定するステップにおいて、前記プロセッサは、前記第一慣性主軸が垂線となる平面に対して所定角度をなすように前記複数のカメラ視点を配置し、前記それぞれの部品の前記組み立て運動ベクトルと所定角度をなす前記カメラ視点を前記対象部品の作業視野の候補とすることを特徴とする組立アニメーション生成方法。
【請求項１１】
請求項８において、
前記組立運動ベクトルを生成するステップにおいて、前記プロセッサは、前記複数の部品の分解順序を決定し、当該分解順序で前記複数の部品のそれぞれの分解運動ベクトルを生成し、当該分解運動ベクトルの符号を反転させて前記組立運動ベクトルを生成することを特徴とする組立アニメーション生成方法。
【請求項１２】
請求項１１において、
前記プロセッサは、前記分解順序の逆を組立順序として、前記組立シーケンスを生成することを特徴とする組立アニメーション生成方法。
【請求項１３】
請求項８において、
さらに、前記プロセッサが、指示入力に応答して、前記組立品を構成する複数の部品のうち同時に組立を行う部品の集合である組立単位を設定するステップと、
前記プロセッサが、当該組立単位の前記第一慣性主軸に基づいて安定的な設置姿勢を決定するステップと、を有し、
前記選択されたカメラ視点を前記対象部品の作業視野として設定するステップにおいて、前記プロセッサは、前記安定的な設置姿勢の前記組立単位における各部品に対して、前記作業視野を設定することを特徴とする組立アニメーション生成方法。
【請求項１４】
請求項８において、
さらに、前記プロセッサが、前記選択されたカメラ視点におけるカメラ姿勢を調整するための調整用インタフェースを画面上に表示するように前記ディスプレイを制御するステップを有することを特徴とする組立アニメーション生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、及び組立アニメーション生成方法に関し、例えば、コンピュータを用い、組立品を組み立てるシーケンスを示す組立シーケンスに基づいて、組立品の組立の動作を示す組立アニメーションを生成するための技術に関するものである。
【背景技術】
【０００２】
複数の部品を組み立てて完成品を作成する場合、組立動作をアニメーションとして示すことができると組立作業上非常に便利である。例えば、特許文献１には、組立順序とその運動方向を算出し、組立アニメーションを生成する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2008-46924号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１で示される従来のアニメーション作成技術においては、アニメーション作成時に必要となるカメラ姿勢については考慮されていない。したがって、組立動作のアニメーションを生成してもカメラは初期姿勢のままであり、作業者に見せたい対象部品の動作が他の部品に妨げられて見えなくなる恐れがある。
【０００５】
本発明はこのような状況に鑑みてなされたものであり、作業指示アニメーションにおける対象部品の動作が見えるカメラ姿勢を自動的に生成するための技術を提供するものである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明では、対象ワークの設置面であり作業者（オペレータ、ユーザと言うこともできる）の立ち位置である水平面を推算することにより、現実の作業に則した作業視野を自動的に生成するようにする。
【０００７】
即ち、本発明では、組立品を構成する複数の部品の慣性テンソル情報を取得し、当該慣性テンソル情報から組立品の第一慣性主軸を算出する。また、複数の部品間の近接関係を示す近接関係情報を取得し、複数の部品の近接関係情報に基づいて、複数の部品のそれぞれが近接する部品と干渉しないような、組立シーケンス及び複数の部品の組み付け方向を示す組立運動ベクトルを生成する。さらに、第一慣性主軸の周りに、それぞれカメラ軸を有し、組立アニメーション生成の際の作業視野の候補となる複数のカメラ視点を配置し、複数の部品のそれぞれについて、対象部品の組立運動ベクトルに最も方向が合致するカメラ視点を選択し、当該選択されたカメラ視点を対象部品の作業視野として設定する。そして、設定された作業視野から組立品の組立アニメーションを生成する。
【０００８】
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本発明の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。
【０００９】
本明細書の記述は典型的な例示に過ぎず、本発明の特許請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
【発明の効果】
【００１０】
本発明によれば、組立の対象となるアセンブリモデルから組立作業におけるワークの設置姿勢と作業者との位置関係を推算し、作業視野を自動的に生成することが可能となり、組立作業指示の工数の低減効果を得られる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態によるコンピュータシステムの概略構成を示す図である。
【図２】本発明の実施形態による組立アニメーション生成処理の概要を説明するためのフローチャートである。
【図３】本発明の実施形態による部品の近接関係（例）を説明するための図である。
【図４】本発明の実施形態による組立単位の設定の例を示す図である。
【図５】本発明の実施形態による組立運動ベクトル生成処理の詳細を説明するためのフローチャートである。
【図６】本発明の実施形態による分解運動（例）を説明するための図である。
【図７】本発明の実施形態による組立アニメーションデータの構成を示すデータリストの図である。
【図８】本発明の実施形態による組立アニメーションを表示した画面例を示す図（画面正面図）である。
【図９】本発明の実施形態による作業支持図を表示した画面例を示す図（画面正面図）である。
【図１０】本発明の実施形態による組立単位の設置姿勢算出に関する情報例を示す図である。
【図１１】本発明の実施形態による複数台のカメラの設定例を示す図である。
【図１２】本発明の実施形態による組立運動を捕らえるのに適したカメラを選択する例を説明するための図である。
【発明を実施するための形態】
【００１２】
本発明は、作業者による現実の組立品の組立作業に則した作業視野（作業者がまさに見ているような感覚となる視野）、その作業視野に基づいた組立アニメーションや組立作業指示図を自動生成するための技術を提供する。
【００１３】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００１４】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【００１５】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。従って、各取得部、算出部、及び生成部は、取得プログラム、算出プログラム、及び生成プログラムと読み替えることができる。
【００１６】
＜コンピュータシステムの構成＞
図１は、本発明を実現するコンピュータシステム（「組立視点生成システム」ともいう）の概略構成を示す図である。
【００１７】
コンピュータシステム１は、ＲＯＭ（Read Only Memory）８に格納された各種プログラムを読み出してＲＡＭ（Random Access Memory）９に展開し、各種プログラムに従った処理を実行する処理手段２と、取得したデータ及び処理結果を格納するための記憶手段３と、ユーザが情報や必要な指示を入力するための入力手段４と、処理結果や作成したアニメーションを出力する出力手段５と、少なくともＣＡＤデータを格納するＣＡＤ７と、少なくとも各種プログラムを格納するＲＯＭ８と、少なくとも処理手段２の作業領域を提供するＲＡＭ９と、を有し、それらは接続線６を介して接続されている。
【００１８】
処理手段２は、例えばＣＰＵなどのプロセッサである。記憶手段３は、例えばＨＤＤや半導体メモリである。入力手段４は、例えばキーボードやマウス（ポインティングデバイス）である。出力手段５は、例えばディスプレイやプリンタである。接続線６は、例えば接続コードやネットワークである。
【００１９】
処理手段２は、例えばＲＯＭ８に記憶されたプログラム読み出して実行することによって、部品配置・近接関係取得部２０１と、組立単位設定・設置姿勢算出部２０２と、組立シーケンス生成部２０３と、作業視野付き組立アニメーション生成部２０４と、作業指示図生成部２０５として機能する。
【００２０】
部品重心・慣性テンソル取得部２００は、ユーザ（オペレータ）によって指定された部品の重心情報及び慣性テンソル（慣性主軸：慣性モーメントの軸）情報をＣＡＤ７から取得し、記憶手段３の部品重心・慣性テンソルデータ格納部３００に格納する。
【００２１】
部品配置・近接関係取得部２０１は、ユーザによって指定された部品の配置に関する情報及び各部品間の近接関係（例えば、組立品の中で部品１と２が隣接している等）の情報を、ＣＡＤ７から取得し、記憶手段３の部品配置・近接関係データ格納部３０２に格納する。なお、これらの情報は、ユーザによって指定することも可能であり、その場合には、部品配置・近接関係取得部２０１は、ユーザによって指定入力された情報を記憶手段３の部品配置・近接関係データ格納部３０２に格納する。
【００２２】
組立単位設定・設置姿勢算出部２０２は、ユーザによって指示された組立単位を、部組や同時組立部品として設定する。また、組立単位設定・設置姿勢算出部２０２は、部組や同時組立部品ごとに部品重心・慣性テンソルデータ３００に基づいて部品を設置する姿勢を算出する。例えば、部組を組み立てるときには、最終的な組立品の姿勢とは異なる姿勢のほうが組み立て易いこともある。そこで、ここでは、部組や同時組立部品における組み立てやすい安定的な姿勢が、慣性テンソル情報を用いて算出される。そして、組立単位設定・設置姿勢算出部２０２は、算出した部品の姿勢データを出力手段５（ディスプレイ）の画面上に表示し、オペレータの確認に応答して、組立単位・設置姿勢データ格納部３０３に格納する。オペレータによる修正指示があれば、組立単位設定・姿勢算出部２０２は、修正指示に応答して修正を施してから、組立単位・設置姿勢データ格納部３０３に格納する。
【００２３】
組立シーケンス生成部２０３は、部品配置・近接関係データ及び組立単位のデータを用いて、完成品の組立シーケンスを生成する。
【００２４】
作業視野付組立アニメーション生成部２０４は、組立シーケンス生成部２０３によって生成された組立シーケンスに基づいて、完成品の作業視野付組立アニメーションデータを生成する。
【００２５】
作業指示図生成部２０５は、作業視野付組立アニメーションデータに基づいて、当該アニメーショ動画におけるポイント箇所（オペレータが指定可能）の時系列の静止画像を作業指示図として作成する。オペレータ（作業者）によっては、一連のアニメーション画像よりも、所定の組立のポイントの前後の画像だけでも良い場合があり、このような場合に対応するために、作業指示図が作成される。作業指示図の例として、ある部品の処理（例えば、組み付け）前後の静止画像が挙げられる。
【００２６】
記憶手段３は、ＣＡＤ７からダウンロードされた組立モデルデータを格納する組立モデルデータ格納部３０１と、ＣＡＤ７から取得した対象部品についての部品重心・慣性テンソルデータを格納する部品重心・慣性テンソルデータ格納部３００と、ＣＡＤ７から取得した各部品の部品配置及び近接関係のデータを格納する部品配置・近接関係データ格納部３０２と、オペレータによって指定された完成品の組立単位及び算出して得られた設置姿勢データを格納する組立単位・設置姿勢データ格納部３０３と、生成した組立シーケンスデータを格納する組立シーケンスデータ格納部３０４と、組立シーケンスデータに基づいて生成された組立アニメーションデータを格納する組立アニメデータ格納部３０５と、組立アニメーションから作成された作業指示図（作業指示書ということも可能である）を格納する作業指示図データ格納部３０６と、を有している。
【００２７】
＜コンピュータシステムの処理概要＞
図２は、コンピュータシステム１の処理概要を説明するためのフローチャートである。
【００２８】
ステップＳ２０では、処理手段２が、完成品の構成部品のリストをＣＡＤ７から取得（ダウンロード）して出力手段５の画面上に表示する。この部品リストは、組立シーケンス及び組立アニメーションを生成しようとする組立モデルに関連する部品をリストアップしたものである。オペレータが、この部品リストが表示された画面上で組立シーケンスの対象となる部品を選択すると、処理手段２は、選択された組立シーケンスの対象となる部品のデータを登録して、記憶手段３の組立モデルデータ格納部３０１に記憶する。
【００２９】
ステップＳ２１では、部品重心・慣性テンソル取得部２００が、部品リストからオペレータの選択によって抽出され組立モデルデータ格納部３０１に記憶された組立モデルデータから、選択された各部品の重心データ及び慣性テンソルデータを取得し、記憶手段３の部品重心・慣性テンソルデータ格納部３００に格納する。
【００３０】
ステップＳ２２では、部品配置・近接関係取得部２０１が、部品リストから抽出されて組立モデルデータ格納部３０１に記憶された組立モデルデータから、各部品の配置及び部品間の近接関係を評価して、部品配置・近接関係データを取得し、記憶手段３の部品配置・近接関係データ格納部３０２に格納する。
【００３１】
ステップＳ２３では、まず、処理手段２が、組立モデルデータ格納部３０１に記憶された組立モデルデータを出力手段５の画面上に表示する。オペレータが画面上に表示された組立モデルデータに対して、入力手段４を用いて組立を行う組立単位（部組）を設定すると、組立単位設定・設置姿勢算出部２０２が、入力された部組として動かす部品群や同時の組み立て動作で組み立てる部品群を、組立単位データとして組立単位・設置姿勢データ格納部３０３に格納する。また、ステップＳ２３では、組立単位設定・設置姿勢算出部２０２が、組立単位ごとに部品重心・慣性テンソルデータ格納部３００から部品重心データ及び慣性テンソルデータを読み出し、当該データに基づいて、設置する部品の姿勢を算出する。そして、組立単位設定・設置姿勢算出部２０２が、算出した設置部品の姿勢情報を出力手段５の画面に表示し、オペレータによる確認や修正処理を経て、確定した姿勢情報を組立単位・設置姿勢データ格納部３０３に格納する。
【００３２】
ステップＳ２４では、組立シーケンス生成部２０３が、部品配置・近接関係データ格納部３０２及び組立単位・設置姿勢データ格納部３０３のそれぞれから、部品配置・近接関係データ及び組立単位・設置姿勢データを読み出し、これらを用いて組立シーケンスデータを生成し、組立シーケンスデータ格納部３０４に格納する。
【００３３】
ステップＳ２５では、作業視野付き組立アニメーション生成部２０４が、組立シーケンスデータ格納部３０４から対応する組立シーケンスデータを読み出し、これを用いて視点付組立アニメーションデータを生成し、組立アニメデータ格納部３０５に格納する。
【００３４】
ステップＳ２６では、作業指示図生成部２０５が、作成された作業視野付組立アニメーションデータを組立アニメデータ格納部３０５から読み出して、作業指示図を作成する。
【００３５】
以下において、図２のＳ２２乃至Ｓ２６の各ステップの詳細について説明する。
＜ステップＳ２２：部品配置・近接関係の取得処理の詳細＞
ステップＳ２２では、部品配置・近接関係取得部２０１は、まず、オペレータによって指定された組立品（完成品）及び、その構成部品の配置情報として、組立品または構成部品を内包する最小の直方体の８頂点のＣＡＤのワールド座標における座標を取得する。
【００３６】
次に、ステップＳ２２のもう１つの機能である部品間近接関係の取得について説明する。
今、例えば、図３に示されるような組立品３０を考える。当該組立品３０を構成する部品３１は、周辺の部品３２及び部品３３と近接して配置されている。部品３１と部品３２は同軸の円筒面３１１で近接しており、部品３１と部品３３は平面３１２で近接している。
【００３７】
そこで、部品配置・近接関係取得部２０１は、近接するサーフェスの種類と幾何情報を以下のように取得する。
（i）円筒面：近接する面が円筒面の場合、円筒軸の方向ベクトル３４と円筒底面の円の中心の座標値と半径が、近接関係を表す情報となる。
（ii）平面：近接する面が平面の場合、ソリッド外向き法線ベクトル３５と、平面上の直行２軸３６及び３７と、原点座標が、近接関係を表す情報となる。
（iii）円錐面：近接する面が円錐面の場合、円錐軸の方向ベクトルと円錐底面の円の中心の座標値と半径が、近接関係を表す情報となる。
【００３８】
なお、２つの部品のサーフェスが近接するか否かの判断は、あるサーフェス間の距離が、ユーザが指定する閾値以下か否かによって行われ、閾値以下であれば、これらの部品の２つのサーフェスは近接すると判断するようにすれば良い。
【００３９】
＜ステップＳ２３：組立単位の設定と設置姿勢の算出処理の詳細＞
図４は、組立単位設定・設置姿勢算出部２０２が実行するステップＳ２３の組立単位の設定について説明するための図である。
【００４０】
ステップＳ２０においてロードされる組立モデルは、図４Ｂに示すように、設計者が構成した部品単位４１となる。このため、組立モデルにおける部品単位４１は、図４Ａに示すような一つのユニット４０を組み立てるときの組立単位と異なる場合が多い。つまり、それらは１対１に対応しない場合が多い。
【００４１】
そこで、ステップＳ２３では、組立シーケンスの部品単位４２の設定は、組立シーケンス生成の対象（アニメーション生成の対象）となる部品４３の設定と、部組品として組立てる部品群４４の設定と、部組品ではないが同時に組み立て動作を行う部品（同時組立部品：部組品ではないが、例えば、ある部品に対して同じ方向に同時に取り付けられるような部品）４５の設定とに分けられる。なお、部品Ｐａｒｔ８は土台であるため、部品単位の設定対象から除くことが可能となっている。
【００４２】
図４の例では、図４Ｂに示すように、設計上の部品単位４１は８つであるが、図４Ｃに示すように、組立シーケンスの部品単位４２は４つ（Ｐａｒｔ部品８を除く、部品単位４４及び４５、Ｐａｒｔ４及び５）に設定されている。以後の説明での組立シーケンス生成における部品とは、ステップＳ２３で設定された図４Ｃに示すような構成の部品単位を指すものとする。
【００４３】
ステップＳ２３では、組立単位４０が設定されると、その組立単位の設置姿勢が算出される。図１０を用いて、設置姿勢について説明する。図１０の例では、組立単位４０において最大の慣性モーメントを有する慣性主軸（第一慣性主軸）１００１が重力１００２と平行となるように、組立単位４０の設置姿勢を取るとき、組立単位４０は重力に対して安定する設置姿勢となっている。
【００４４】
また、組立単位４０の重心１００３が、組立単位を構成する部品の各重心の情報を積算することにより得られる。そして、当該重心１００３が、組立単位を包含する最小の直方体である最少外包直方体１０００の対角線の交点１００４より重力方向に沿って下側となる方向に、組立単位４０が設置される。これにより、水平方向の外乱に対し安定する姿勢となる。例えば、重心１００３が交点１００４よりも上にある場合には、設置姿勢を逆にした方が安定する。なお、慣性主軸１００１は、組立品を構成する各部品において、原点を共通化し、各部品の慣性テンソル情報を用いて、所定の行列演算により求められる。ただし、この段階では、軸の方向が上向きか下向きか確定することができない。そこで、前述のように、交点１００４と重心１００３の位置関係により、慣性主軸１００１の方向が決定される。図１０の例では、重力方向が１００２のとき、重心１００３は中心１００４の下にあるため、慣性主軸１００１は上向きに決定される。一方、重心１００３が中心１００４より上にある場合には、慣性主軸１００１は下向きに決定され、より安定する姿勢（上下方向の姿勢）が設定される。
【００４５】
以上の方法を用いると、例えば、組立単位４０の設置姿勢の鉛直軸方向が慣性主軸１００１であると算出される。そして、組立単位設定・設置姿勢算出部２０２は、これを３次元ベクトルのＺとして出力手段５に表示する。
【００４６】
次に、オペレータが慣性主軸１００１と直交する正面方向を入力手段４により設定する。例えば、組立単位４０において、正面方向が矢印１００５に設定されたとする。これを３次元ベクトルＸとする。Ｓ２３では、ＺとＸの外積演算Ｚ×Ｘにより、残る直交ベクトルＹを算出し、３次元直交ベクトル（Ｘ、Ｙ、Ｚ）が組立単位４０の設置姿勢とされる。
【００４７】
＜ステップＳ２４：組立シーケンス生成処理の詳細＞
組立シーケンスは、ＣＡＤの組立モデルから分解シーケンスを生成し、分解シーケンスの分解順序を逆順にし、分解運動ベクトルの符号を反転することにより生成することができる。このような処理手順について図５を参照しながら説明する。図５は、分解シーケンスの生成と分解シーケンスから組立シーケンスを生成する処理を説明するためのフローチャートである。
【００４８】
ステップＳ５１では、組立シーケンス生成部２０３は、部品配置・近接関係データ格納部３０２の部品配置・近接関係データを参照し、各対象部品を内包する最小直方体の８頂点から最小直方体の６つの構成平面を構成し、以下のような部品の分解順序案（(i)又は(ii)、或いは、それらの組み合わせ）を生成する。
（i）構成部品うち、最小直方体の６つの構成平面のいずれかが、鉛直方向で高い順に構成部品の順序を並べる。
（ii）同軸で構成される組立品の組立シーケンスを生成する場合、ユーザにより指定された方向軸に対し、最小直方体の４つの構成面が平行な部品群について、該当する４つの構成面に対し、部品間で内包関係が成立する部品群を、内側からあるいは外側からの順序に並べる。
【００４９】
ここで、（ii）の処理において互いに内包・外包関係にあたらない２部品については、順位が決定できない。その場合、（i）の処理を用いて部品間の順序に序列をつけることにより、全ての部品間に序列を付けることが可能である。（i）の処理を用いれば単独で全ての部品間に序列をつけることができるが、同じ順位となる部品については、例えば、最小直方体の６つの構成平面のいずれかが左側の部品を高い順位にするなどのように条件を付加することも可能である。
【００５０】
ステップＳ５２では、組立シーケンス生成部２０３は、ステップＳ５１で生成した分解順序の順番iを初期化する。
【００５１】
ステップＳ５３では、組立シーケンス生成部２０３は、順番iが分解順序の最終順番に達したか否かを判断する。達していないと判断した場合（Ｓ５３でＮｏの場合）、処理はステップＳ５４に移行する。一方、達していると判断した場合（Ｓ５３でＹｅｓの場合）、処理はステップＳ５８に移行する。
【００５２】
ステップＳ５４では、組立シーケンス生成部２０３は、分解順序iの対象部品p(i)について、後述する方法（図６参照）により分解運動ベクトル集合v(i)を算出する。
【００５３】
ステップＳ５５では、組立シーケンス生成部２０３は、分解運動ベクトルが生成されたか否かを判定する。例えば、組立品の真ん中にある部品などは組立品から外そうとしても外すことができず（動かない）、このとき「分解運動ベクトルがない」とすることができる。動くか動かないかは、部品の近接関係の情報により判断することができる。近接部品との干渉で分解運動が生成されない場合（Ｓ５５でＮｏの場合）、処理はステップＳ５６に移行する。分解運動が生成された場合（Ｓ５５でＹｅｓの場合）、処理はステップＳ５７に移行する。
【００５４】
ステップＳ５６では、組立シーケンス生成部２０３は、対象部品p(i)の順序をi+1に先送りして処理をステップＳ５３に移行させる。つまり、分解運動ベクトルがないため、当該部品を外す順序を後回しにされる。
【００５５】
ステップＳ５７では、組立シーケンス生成部２０３は、次の順序であるi+1に処理対象とし、処理をステップＳ５３に移行させる。
【００５６】
ステップＳ５８では、組立シーケンス生成部２０３は、分解順序を逆順にして組立順序として格納する。
【００５７】
ステップＳ５９では、組立シーケンス生成部２０３は、組立順序の全ての順番iについて分解運動v(i)のベクトル符号を反転して組立運動ベクトル集合u(i)とし、当該組立運動ベクトル集合u(i)を組立シーケンスデータ格納部３０４に格納する。分解運動ベクトルの逆が組立運動ベクトルとなる。
【００５８】
＜ステップＳ５４：分解運動の算出処理の詳細＞
図６は、ステップＳ５４の分解運動の算出処理の詳細を説明するための構成モデルを示す図である。
【００５９】
まず、ここでは分解運動算出の対象部品p(i)をaとする。図６の例では６１が部品a、部品６２が部品aと円筒面６１１で近接し、部品６３が部品aと平面６１２で近接している。部品aと近接するサーフェスｊについて、サーフェスｊの種類が円筒面及び円錐面の場合、分解運動ベクトルの集合は、円筒面の中心軸ｅｉを用いて式１のように算出することができる。つまり、円筒面の場合には、分解運動ベクトルは上下方向のベクトルとなる。
【００６０】
【数１】
0005628083.tif 000002
【００６１】
また、例えば、サーフェスｊの種類が平面の場合、運動ベクトルの集合は、部品６３の平面のソリッド外向き法線と平面上の直交ベクトルから式２のように算出することができる。つまり、平面の場合には、分解運動ベクトルは、上方向、及びＸＹ方向のベクトルとなる。
【００６２】
【数２】
0005628083.tif 000003
【００６３】
部品ａに複数の近接サーフェスが在る場合は、サーフェスごとの運動ベクトル集合の和集合を部品ａの分解運動ベクトル集合は、式３のように表すことができる。
【００６４】
【数３】
0005628083.tif 000004
【００６５】
ここで対象部品ａは、近接平面により運動の動作領域が制限され、部品ａは近接平面ｊと干渉する可能性がある。
【００６６】
近接平面ｊの運動領域集合は、以下の式４のように算出する。例えば、図６において、部品ａ（部品６１）については、上方向にしか動かせないからである。
【００６７】
【数４】
0005628083.tif 000005
【００６８】
運動ベクトル集合Ｍａに属する運動ベクトルｍｉに対し、動作領域集合Ｄａの要素ベクトルｄｊによる制限を加味した補正運動ベクトルを式５により算出する。
【００６９】
【数５】
0005628083.tif 000006
【００７０】
次に、近接平面ｊの運動領域の制限を加味した補正運動ベクトルが、近接平面ｊ以外の近接平面k(k≠j)と干渉する場合、補正運動ベクトルは部品aの分解運動ベクトルとならないので、式６の処理により補正運動ベクトルを再補正して再補正運動ベクトルを算出する。
【００７１】
【数６】
0005628083.tif 000007
【００７２】
零ベクトル以外の再補正運動ベクトルを要素として、部品aの分解運動ベクトル集合V(i)とすると、V(i)は式７で表される。なお、式７では、干渉成分が取り除かれたものとなっており、V(i)は、取り外す方向（分解運動ベクトル）の候補の集合となっている。
【００７３】
【数７】
0005628083.tif 000008
【００７４】
以上の処理により部品aについて近接面と干渉しない複数の分解運動ベクトルが生成され、このベクトルの符号を反転して式８で表されるベクトルを組立運動ベクトル集合U(i)とし、これが組立順序とともに組立シーケンスデータとして組立シーケンスデータ格納部３０４に格納される。
【００７５】
【数８】
0005628083.tif 000009
【００７６】
＜ステップＳ２５:カメラ視点付組立アニメーション生成処理の詳細＞
ステップＳ２４までの処理により、部品の動き（組立運動ベクトル）が求められる。ステップＳ２５では、カメラの配置位置が設定される。
【００７７】
ステップＳ２５は、ステップＳ２４で作成された組立シーケンスデータ１３から組立アニメーションデータを生成し、組立アニメデータ格納部３０５に格納する処理である。
【００７８】
組立アニメーションデータは、例えば、図７に示すように、動かす対象の部品名７０１と動かす方向である組立運動ベクトル７０２と、カメラ視点７０３のデータによって構成される。これらのデータは、総組７１０の単位で部組品７２０ごとに関連付けられて、組立アニメデータ格納部３０５に、組立アニメーションデータとして格納されている。
【００７９】
次に、カメラ視点を設定するためのカメラ姿勢の算出方法について説明する。Ｓ２３で算出した組立単位の設置姿勢のＸＹ平面を地平面として、鉛直上方向であるＺ軸周りに均等に複数台のカメラを置いて、以下の方法で組立動作を捕らえるのに適したカメラに自動的に切り換える。
【００８０】
まず、複数台のカメラ姿勢の算出方法を示す。オペレータが入力手段４から設定したカメラ台数をＮとする。組立単位の設置姿勢座標系を［Ｘ，Ｙ，Ｚ］とする。Ｚ軸は必ず上向きとなっている。なお、設置姿勢座標系は、ステップＳ２３で求められた、組立単位が安定した姿勢での座標系である。
【００８１】
図１１に示すように、式９により第一カメラ１１０１の姿勢［Ｘｃ１，Ｙｃ１，Ｚｃ１］を算出する。式９によって、カメラＺｃ１軸を組立単位の正面方向Ｘに、カメラＹｃ（１）軸を組立単位の鉛直上方向Ｚに設定する。式９により、カメラの座標を設置姿勢座標系に併せている。
【００８２】
【数９】
0005628083.tif 000010
【００８３】
第ｋカメラ１１０２（ｋ＝１，…，Ｎ）の姿勢［Ｘｃｋ，Ｙｃｋ，Ｚｃｋ］は、式１０で算出する。第ｋカメラのＺｃｋ軸は組立単位の正面方向ベクトルＸを鉛直上方向ベクトルＺ周りに２π・（ｋ−１）／Ｎ回転させたものである。これにより、Ｚ軸周りにＮ個のカメラが所定間隔で配置される。
【００８４】
【数１０】
0005628083.tif 000011
【００８５】
さらに、第ｋカメラ（ｋ＝１，…，Ｎ）の姿勢［Ｘｃｋ，Ｙｃｋ，Ｚｃｋ］を正面ベクトルＸ周りに上向きに角度α（例えば、予め設定された正の定数）だけ回転させたカメラを第ｋ１カメラ１１０３［Ｘｃｋ１，Ｙｃｋ１，Ｚｃｋ１］、下向きに角度−αだけ回転させたカメラを第ｋ２カメラ１１０４［Ｘｃｋ２，Ｙｃｋ２，Ｚｃｋ２］とする。
【００８６】
次に、組立運動を捕らえるのに適したカメラの選択方法について示す。組立順序の順番ｉで組み立てる部品ｐ（ｉ）の組立運動ベクトルをｕｉ１２０１とする。そして、式１１の条件を満たすカメラｋｍが選択される。
【００８７】
【数１１】
0005628083.tif 000012
【００８８】
式１１により組立運動ベクトルとカメラのＺｃ軸が最も平行で方向は反対のカメラが選択される。つまり、組立運動ベクトル（組み付け方向）と並行に近いカメラ軸が選択される。これにより、作業視野として見やすい方向が決定される。図１２の例では組立運動ベクトルｕｉ１２０１に対し、第２カメラ１２０２が選ばれることになる。なお、組み付け方向は部品ごとに異なるため、カメラの方向（カメラ軸）は部品ごとに選択され、アニメーション生成に用いられる。
【００８９】
この算出したカメラ姿勢から組立品のアセンブリモデルを観察している状態で、部品ｐ（ｉ）が組立運動ベクトルｕｉで移動して組立品のアセンブリモデルに組みつけられる様子をアニメーションとして作成する。
【００９０】
次に、カメラ姿勢を調整する方法について説明する。算出したカメラ姿勢から見た組立品の三次元モデルを出力手段４の画面上に、例えば図８のように画面８００上の三次元モデル表示領域８０１にアニメーション画像８０２を表示する。オペレータはこの画面８００上で、表示されたアニメーション画像８０２を直接操作（上下、左右、回転、拡大、縮小）して、カメラ姿勢（位置も含む）を調整することができる。
【００９１】
カメラ姿勢調整は、アセンブリモデルに組み付ける順番に組立品毎に行われ、変更した順番以降のカメラ姿勢が全て変更されるようになっている。
【００９２】
例えば、ａ（ａは任意の自然数）番目まである組立順番においてｎ（ｎ≦ａ）番でカメラ姿勢をＡに変更したならば、ｎ以上ａ以下までの組立順番に対してカメラ姿勢Ａが反映される。あらかじめｍ（ｎ＜ｍ≦ａ）の組立順番でカメラ姿勢をＢに変更している場合はｎ以上（ｍ−１）以下までの組立順番に対してカメラ姿勢Ａが反映される。逆に後からｍ番の組立順番でカメラ姿勢をＢに変更すればｍ以上ａ以下の組立順番に対してカメラ姿勢Ｂが反映される。これにより、自動生成した姿勢であってもオペレータの好みによって姿勢を変更することが可能となる。
【００９３】
組立順番通りに三次元モデルを組立てる様子を、設定したカメラ姿勢で表示するアニメーションを見て、組立順番とカメラ姿勢を確認することができる。
【００９４】
また、組立アニメーションは、任意の順番から再生することができ、また、任意の順番で終了することができる。アニメーションの再生スピードを変更することや、一つのブロックが一フレームを構成するようなフレーム単位でフレーム送りやフレーム戻しを行うことができ、作業者は自分に合ったスピードでアニメーションを見て確認することができる。
【００９５】
アニメーションを見る場合は、オペレータは、図８の「アニメーション再生」ボタン８１２を押せば良い。アニメーション再生ボタン８１２を押すと、三次元モデル表示領域８０１に表示されている三次元モデル８０２が動き出し、該当する組立品の組み立てる様子を表すアニメーションを見ることが可能となる。このとき、アニメーションの開始位置を予め設定しておくことにより、指定した組立順番から組立てアニメーションを見ることが可能になる。アニメーション再生を途中で終了する場合は、再生中にボタン８１２が「アニメーション停止」ボタンに変わっているので、このボタンを押してアニメーションを停止する。組立順番とカメラ姿勢の確認が終わり、作成したアニメーションを保存する場合は「アニメーション保存」ボタン８１３を押して編集したアニメーションを保存し、「終了」ボタン８１５を押すことでアニメーション編集作業を終了する。
【００９６】
＜ステップＳ２６:作業指示図作成処理の詳細＞
次に、この作成・編集したアニメーションに基づいて、作業指示図（作業指示書ともいう）を作成する処理について説明する。
【００９７】
図８の画面において、オペレータが「作業指示図作成」ボタン８１４を押すと、図９に示すような作業指示書の画面に変わる。
【００９８】
図９では、作業指示図表示領域９０１にハイライト部品として部品９０２の作業指示書が表示されている場合について示している。９０３の欄には、ハイライト部品９０２に関する品質確認情報として、部品名や図番、員数などの情報が表示される。９０４の欄には、ハイライト部品９０２を組み付ける作業をする上での注意事項が表示される。
【００９９】
画面右下の「次へ」ボタン９１１をクリックすると、現在表示されているハイライト部品９０２の次に組み付ける部品に関する情報が作業指示図表示領域９０１に表示される。また、「戻る」ボタン９１２をクリックすると、現在表示されているハイライト部品９０２の前に組み付ける部品に関する情報が作業指示図表示領域９０１に表示される。
各部品の作業指示書の確認が終わると、「終了」ボタン８１５をクリックして作業を終了する。
【０１００】
＜まとめ＞
本発明の実施形態では、各部品の慣性テンソル情報から組立品の第一慣性主軸を算出する。また、複数の部品間の近接関係を示す近接関係情報に基づいて、組立シーケンス及び複数の部品の組み付け方向を示す組立運動ベクトルを生成する。このときの組立シーケンス及び組立運動ベクトルは、複数の部品のそれぞれが近接する部品と干渉しないように算出される。そして、第一慣性主軸の周りに、それぞれカメラ軸を有する複数のカメラ視点を配置する。このカメラ視点が、組立アニメーション生成の際の作業視野の候補となる。さらに、複数の部品のそれぞれについて、対象部品の組立運動ベクトルに最も方向が合致するカメラ視点を選択する。この選択されたカメラ視点が対象部品の作業視野となる。この作業視野から組立品の組立アニメーションが生成される。このようにすることにより、現実の作業に則した作業視野を自動生成することが可能となる。つまり、従来のような、部品の組立動作ベクトルにカメラ軸を平行にする方式では、ワークの設置面を考慮していなかったので、実際取りえない作業者の姿勢による視野を生成していたが、本発明によれば、この課題は解消される。なお、作業視野は、ユーザによって指定された組立単位（例えば、部組）で生成されるようにすると良い。これにより、よりアニメーション生成の効率が良くなる。
【０１０１】
また、本発明では、組立アニメーションの画像に基づいて、指定された部品の組立前後の静止画像を含む作業指示図を生成する。このようにすることにより、組立動作の全体の様子まで必要のないユーザに対して、必要な部分のみの組立情報を提供することができるので、このようなユーザの作業効率をより高くすることができるようになる。
【０１０２】
本発明では、第一主軸が垂線となる平面に対して所定角度をなすように複数のカメラ視点を配置するようにしても良い。このとき、それぞれの部品の組み立て運動ベクトルと所定角度（α、−α）をなすカメラ視点が対象部品の作業視野の候補となる。そして、第一主軸が法線となる平面上でカメラ視点を見たときには上記選択されたカメラ視点は、組立運動ベクトルの方向と最も一致したものとなるが、第一主軸の方向からみると、所定角度をなしている。このようにすることにより、部品の真正面から組立動作を見るよりも、少しずらして（所定角度分だけ）作業視野を作成することができ、ユーザによってより見やすい作業視野を提供することが可能となる。
【０１０３】
なお、組立運動ベクトルは、複数の部品の分解順序を決定し、当該分解順序で複数の部品のそれぞれの分解運動ベクトルを生成し、当該分解運動ベクトルの符号を反転させて生成する。また、組立シーケンスは、分解順序の逆を組立順序とする。このようにすることにより、組立品から容易に組立運動ベクトル及び組立シーケンスを生成することが可能となる。
【０１０４】
また、選択されたカメラ視点におけるカメラ姿勢を調整するための調整用インタフェースを画面上に表示するようにしても良い。これにより、よりユーザの好みに適したカメラ視点を提供することが可能となる。
【０１０５】
本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１０６】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【０１０７】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【０１０８】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１０９】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【０１１０】
加えて、本技術分野の通常の知識を有する者には、本発明のその他の実装がここに開示された本発明の明細書及び実施形態の考察から明らかになるである。記述された実施形態の多様な態様及び／又はコンポーネントは、データを管理する機能を有するコンピュータ化ストレージシステムに於いて、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本発明の範囲と精神は後続する請求範囲で示される。
【符号の説明】
【０１１１】
１・・・コンピュータシステム
２・・・処理手段（プロセッサ）
３・・・記憶手段
４・・・入力手段
５・・・出力手段
６・・・接続線
７・・・ＣＡＤ
２００・・・部品重心・慣性テンソル取得部（部品重心・慣性テンソル取得プログラム）
２０１・・・部品配置・近接関係取得部（部品配置・近接関係取得プログラム）
２０２・・・組立単位設定・設置姿勢算出部（組立単位設定・設置姿勢算出プログラム）
２０３・・・組立シーケンス生成部（組立シーケンス生成プログラム）
２０４・・・作業視野付き組立アニメーション生成部（作業視野付き組立アニメーション生成プログラム）
２０５・・・作業指示図生成部（作業指示図生成プログラム）
３０１・・・組立モデルデータ格納部
３００・・・部品重心・慣性テンソルデータ格納部
３０２・・・部品配置・近接関係データ格納部
３０３・・・組立単位・設置姿勢データ格納部
３０４・・・組立シーケンスデータ格納部
３０５・・・組立アニメデータ格納部
３０６・・・作業指示図データ格納部
【図１】
0005628083.tif 000013
【図２】
0005628083.tif 000014
【図３】
0005628083.tif 000015
【図４】
0005628083.tif 000016
【図５】
0005628083.tif 000017
【図６】
0005628083.tif 000018
【図７】
0005628083.tif 000019
【図８】
0005628083.tif 000020
【図９】
0005628083.tif 000021
【図１０】
0005628083.tif 000022
【図１１】
0005628083.tif 000023
【図１２】
0005628083.tif 000024