(57)【要約】【課題】設計変更された部品データが構成する三次元モデルを仮想空間上で操作することなく、当該部品データを仮想空間上で閲覧可能な仕組みを提供すること。【解決手段】複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置において、設計変更前の第一の三次元モデルと、設計変更後の第二の三次元モデルとを取得する。そして、取得した第一の三次元モデルを構成する複数の部品データと、取得した第二の三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する。第二の三次元モデルと、特定された部品データとを仮想空間上に配置する。【選択図】図１１
2018005499.tif 000002
【特許請求の範囲】
【請求項１】
複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置であって、
設計変更前の第一の三次元モデルと、設計変更後の第二の三次元モデルとを取得する取得手段と、
前記取得手段で取得した第一の三次元モデルを構成する複数の部品データと、前記取得手段で取得した第二の三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する特定手段と、
前記第二の三次元モデルと、前記特定手段で特定された部品データとを前記仮想空間上に配置する配置手段と
を備えることを特徴とする仮想空間制御装置。
【請求項２】
前記特定手段は、設計変更がなされた部品データとして、形状が変更された部品データを特定することを特徴とする請求項１に記載の仮想空間制御装置。
【請求項３】
前記特定手段は、設計変更がなされた部品データとして、前記第一の三次元モデルに追加された部品データを特定することを特徴とする請求項１または２に記載の仮想空間制御装置。
【請求項４】
前記特定手段は、設計変更がなされた部品データとして、位置または向きが変更された部品データと、前記第一の三次元モデルから削除された部品データとを特定し、
前記配置手段は、前記特定手段で特定された部品データのうち、前記位置または向きが変更された部品データと前記第一の三次元モデルから削除された部品データとは前記仮想空間上に配置しないことを特徴とする請求項１乃至３のいずれか１項に記載の仮想空間制御装置。
【請求項５】
前記仮想空間制御装置は、
現実空間においてユーザから指定された位置に対応する前記仮想空間上の位置を特定する位置特定手段
を更に備え、
前記配置手段は、前記特定手段で特定された部品データを前記位置特定手段で特定された前記仮想空間上の位置に配置することを特徴とする請求項１乃至４のいずれか１項に記載の仮想空間制御装置。
【請求項６】
前記仮想空間制御装置は、
前記仮想空間を提示するユーザの当該仮想空間上の位置から、前記第二の三次元モデルが配置された当該仮想空間上の位置までの距離を取得する距離取得手段
を更に備え、
前記配置手段は、前記距離取得手段で取得した距離が所定の条件を満たす場合に、前記特定手段で特定された部品データを前記仮想空間上に配置することを特徴とする請求項１乃至５のいずれか１項に記載の仮想空間制御装置。
【請求項７】
前記配置手段は、前記特定手段で特定された部品データを含むアセンブリデータを前記仮想空間上に配置可能であることを特徴とする請求項１乃至６のいずれか１項に記載の仮想空間制御装置。
【請求項８】
前記配置手段は、前記特定手段で特定された設計変更前の部品データまたは前記特定手段で特定された設計変更後の部品データを前記仮想空間上に配置することを特徴とする請求項１乃至７のいずれか１項に記載の仮想空間制御装置。
【請求項９】
前記仮想空間制御装置は、
前記第二の三次元モデルを構成する部品データのうち、前記特定手段で特定された部品データが識別可能な表示形態に当該第二の三次元モデルを変更する表示形態変更手段
を更に備え、
前記配置手段は、前記表示形態変更手段で表示形態が変更された前記第二の三次元モデルと、前記特定手段で特定された部品データとを前記仮想空間上に配置することを特徴とする請求項１乃至８のいずれか１項に記載の仮想空間制御装置。
【請求項１０】
複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置の制御方法であって、
前記仮想空間制御装置の取得手段が、設計変更前の第一の三次元モデルと、設計変更後の第二の三次元モデルとを取得する取得ステップと、
前記仮想空間制御装置の特定手段が、前記取得ステップで取得した第一の三次元モデルを構成する複数の部品データと、前記取得ステップで取得した第二の三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する特定ステップと、
前記仮想空間制御装置の配置手段が、前記第二の三次元モデルと、前記特定ステップで特定された部品データとを前記仮想空間上に配置する配置ステップと
を備えることを特徴とする仮想空間制御装置の制御方法。
【請求項１１】
複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置の制御方法を実行可能なプログラムであって、
前記仮想空間制御装置を、
設計変更前の第一の三次元モデルと、設計変更後の第二の三次元モデルとを取得する取得手段と、
前記取得手段で取得した第一の三次元モデルを構成する複数の部品データと、前記取得手段で取得した第二の三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する特定手段と、
前記第二の三次元モデルと、前記特定手段で特定された部品データとを前記仮想空間上に配置する配置手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計変更された部品データが構成する三次元モデルを仮想空間上で操作することなく、当該部品データを仮想空間上で閲覧可能な仮想空間制御装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、組立系製造業では業務のフロントローディングが行われている。フロントローディングは、後工程で発生する可能性のある問題を初期工程で検討することにより、品質向上を目指す取り組みである。例えば、設計部門で作成中のＣＡＤデータを三次元ＣＡＤソフトウェアで表示し、組立部門や品質保証部門といった下流部門が部品の干渉チェックをシミュレーションしている。
【０００３】
しかしながら、設計部門から取得するＣＡＤデータは未完成である。設計部門と下流部門とが協力して製品設計を進めていくため、設計部門と下流部門との間でＣＡＤデータのやり取りが何度も行われる。つまり、下流部門は設計部門が改善したＣＡＤデータを何度も取得し、その都度シミュレーション等を行う必要がある。
【０００４】
その際に、設計部門から下流部門に対して設計変更の内容をきちんと伝えることが重要であるが、設計変更した箇所が多いと、設計変更箇所を伝え忘れてしまう可能性がある。そのため、下流部門は前回取得したＣＡＤデータから何がどのように変更されたのかを、設計変更前のＣＡＤデータと設計変更後のＣＡＤデータとを比較して、確認しなければならない。
【０００５】
そこで特許文献１には、設計変更前のＣＡＤデータと設計変更後のＣＡＤデータとをそれぞれ一定形状の複数のエリアに分割し、そのエリアごとに体積を算出して設計変更前後で比較することにより、形状が変更された箇所を特定する仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−３４５２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の仕組みや三次元ＣＡＤソフトウェアの従来機能により、設計変更された箇所を自動的に特定する仕組みが存在するため、下流部門の作業者は容易に設計変更された箇所を確認することができる。
【０００８】
しかしながら、多数の部品から構成される組立品の場合、設計変更された箇所が組立品の内部に組み込まれていることがあるため、設計変更された箇所が判明したとしても、その箇所を三次元モデルとして確認することは手間がかかる。なぜなら、ＣＡＤデータの三次元モデルを三次元ＣＡＤソフトウェアで表示し、設計変更箇所だけが表示されるように設定しなければならないためである。
【０００９】
また、三次元モデルを含む画像を、現実空間を撮像した画像に重畳し、これを観察者のヘッドマウントディスプレイに提示する複合現実感（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ、以下、ＭＲという。）や拡張現実感と呼ばれている仕組みが存在する。この仕組みを用いて、組立品の三次元モデルを表示し、組立品の内部にある設計変更箇所を確認しようとしても、仮想空間に存在する三次元モデルを操作して部品ごとに分解しなければならないので、観察者にとって非常に手間である。
【００１０】
本発明の目的は、設計変更された部品データが構成する三次元モデルを仮想空間上で操作することなく、当該部品データを仮想空間上で閲覧可能な仕組みを提供することである。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために本発明の仮想空間制御装置は、複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置であって、設計変更前の第一の三次元モデルと、設計変更後の第二の三次元モデルとを取得する取得手段と、前記取得手段で取得した第一の三次元モデルを構成する複数の部品データと、前記取得手段で取得した第二の三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する特定手段と、前記第二の三次元モデルと、前記特定手段で特定された部品データとを前記仮想空間上に配置する配置手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、設計変更された部品データが構成する三次元モデルを仮想空間上で操作することなく、当該部品データを仮想空間上で閲覧可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態における情報処理システムのシステム構成の一例を示す図である。
【図２】情報処理装置１０１とＨＭＤ１０２のハードウェア構成の一例を示す図である。
【図３】情報処理装置１０１の機能構成の一例を示す図である。
【図４】全体的な処理の流れの一例を示すフローチャートである。
【図５】差分特定処理の詳細な処理の流れの一例を示すフローチャートである。
【図６】旧組立品データと新組立品データの参照構造と、比較表６１０のデータ構造の一例とを示す図である。
【図７】差分リスト７００のテーブル構成の一例を示す図である。
【図８】操作画面８００の画面構成の一例を示す図である。
【図９Ａ】差分データ配置処理の詳細な処理の流れの一例を示すフローチャートである。
【図９Ｂ】図９Ａに続き、差分データ配置処理の詳細な処理の流れの一例を示すフローチャートである。
【図１０】ターゲットマーカにより操作画面８００が操作されている様子を示す図である。
【図１１】形状が変更された選択差分データが表示された様子を示す図である。
【図１２】表示設定反映処理の詳細な処理の流れの一例を示すフローチャートである。
【図１３】設計変更前の選択差分データが表示された様子を示す図である。
【図１４】新たに追加された選択差分データが表示された様子を示す図である。
【図１５】位置または姿勢が変更された選択差分データが識別表示された様子を示す図である。
【図１６】削除された選択差分データが識別表示された様子を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１５】
図１は、本実施形態における情報処理システムのシステム構成の一例を示す図である。図１に示す情報処理システムは、複合現実感技術（以下、ＭＲ技術という。）を用いた、ユーザに仮想空間を閲覧させるためのシステムである。情報処理システムは、情報処理装置１０１にＨＭＤ１０２が相互にデータ通信可能に接続されている。情報処理装置１０１とＨＭＤ１０２との接続は、有線接続であってもよいし、無線接続であってもよい。尚、図１のシステム上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例がある。
【００１６】
情報処理装置１０１（仮想空間制御装置）は、汎用的なコンピュータである。情報処理装置１０１は、ＨＭＤ１０２で撮影（撮像）された現実空間の画像（以下、現実空間画像という。）と、情報処理装置１０１で生成された仮想空間の画像（以下、仮想空間画像という。）とを重畳する。こうして生成された画像（以下、複合現実画像という。）を、ＨＭＤ１０２に送信する。尚、ＭＲ技術に関しては従来技術を用いるため、詳細な説明は省略する。また、情報処理装置１０１は、パーソナルコンピュータであってもよいし、サーバのような大型のコンピュータであってもよい。更には、携帯電話やタブレット端末といった携帯端末であってもよい。コンピュータの種類は特に問わない。
【００１７】
ＨＭＤ１０２は、ヘッドマウントディスプレイである。ＨＭＤ１０２は、ユーザの頭部に装着する装置であり、右目用と左目用のビデオカメラと、右目用と左目用のディスプレイを備えている。ＨＭＤ１０２は、ＨＭＤ１０２のビデオカメラで撮影された現実空間画像を情報処理装置１０１に送信する。そして、情報処理装置１０１から複合現実画像を受信し、ディスプレイに表示する。ＨＭＤ１０２では、右目用と左目用のディスプレイを設けているので、視差によって立体感を得ることができる。尚、ＨＭＤ１０２で撮影する現実空間画像とＨＭＤ１０２で表示する複合現実画像は、動画（映像）が望ましいが、所定の間隔で撮影された静止画であってもよい。また、スマートフォンのようにディスプレイとビデオカメラがハードウェアの前面と背面に設置されている装置を、ヘッドマウントディスプレイの代用としてもよい。
【００１８】
本実施形態では、情報処理装置１０１とＨＭＤ１０２とを含むシステムとして説明を行うが、情報処理装置１０１とＨＭＤ１０２とが一体化したデバイス（仮想空間制御装置）であってもよい。すなわち、ＨＭＤ１０２に情報処理装置１０１の各種ハードウェアを搭載し、ＨＭＤ１０２だけで動作するようにしてもよい。
【００１９】
また、情報処理装置１０１には赤外線カメラ１０４が接続されている。赤外線カメラ１０４は、赤外線を用いた光学式のセンサである。赤外線カメラ１０４は、現実空間に赤外線を照射し、現実空間の物体で反射した赤外線を撮影することにより、赤外線カメラ１０４が定義する座標系における、現実空間の物体の位置及び姿勢を特定する。この赤外線カメラ１０４を用いて、現実空間におけるＨＭＤ１０２（すなわちユーザ）の位置及び姿勢（向きや傾き、視線の方向等。以下、同じ。）を特定する。ＨＭＤ１０２には、オプティカルマーカ１０３という赤外線を反射する物体を備えており、赤外線カメラ１０４はこのオプティカルマーカ１０３で反射した赤外線を撮影することで、ＨＭＤ１０２の位置及び姿勢を特定できるようになっている。ユーザがどのような位置や姿勢であっても、当該ユーザが装着するＨＭＤ１０２のオプティカルマーカ１０３を撮影または検知できるように、情報処理システムでは赤外線カメラ１０４を複数台設置することが望ましい。また、位置及び姿勢を特定可能なＨＭＤ１０２は、赤外線カメラ１０４の撮影範囲に存在するものとして説明を行う。
【００２０】
尚、本実施形態においては、現実空間におけるＨＭＤ１０２の位置及び姿勢を特定するために、赤外線カメラ１０４を用いるが、これらの現実空間における位置及び姿勢を特定できるのであれば、これに限らない。例えば、磁気センサを用いてもよいし、ＨＭＤ１０２が撮影した画像を解析して位置及び姿勢を特定してもよい。
【００２１】
本実施形態においては、ＨＭＤ１０２を装着したユーザは、ターゲットマーカ１０５を用いて各種操作を行う。ターゲットマーカ１０５は、二次元マーカから構成される。情報処理装置１０１はこの二次元マーカの傾きやＨＭＤ１０２との距離を画像認識により特定することにより、現実空間上のターゲットマーカ１０５が仮想空間上においてはどういった位置・姿勢であるのかを特定することができる。尚、二次元マーカの種類は特に問わないが、画像認識により二次元マーカの形状が取得しやすい種類である方が望ましい。
【００２２】
図２は、情報処理装置１０１とＨＭＤ１０２の各ハードウェア構成の一例を示す図である。
【００２３】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２４】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムが記憶されている。更には、情報処理装置１０１の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２５】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２６】
また、入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２１０）からの入力を制御する。
【００２７】
情報処理装置１０１のビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１０２が備える右目・左目ディスプレイ２２２やディスプレイ２１２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、ディスプレイ２１２は、液晶ディスプレイ等であり、右目・左目ディスプレイ２２２と同様の表示、または仮想空間を操作するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）が表示される。
【００２８】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部メモリ２１１（記憶手段）へのアクセスを制御する。外部メモリ２１１は、例えばハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等がある。
【００２９】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。特に、情報処理装置１０１の通信Ｉ／Ｆコントローラ２０８は、赤外線カメラ１０４との通信も制御する。
【００３０】
情報処理装置１０１の汎用バス２０９は、情報処理装置１０１に接続されるＨＭＤ１０２の右目・左目ビデオカメラ２２１で撮影した画像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。また、右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００３１】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３２】
本発明の情報処理装置１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００３３】
図３は、情報処理装置１０１の機能構成を示す機能構成図である。尚、図３の情報処理装置１０１の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【００３４】
情報処理装置１０１は機能部として、通信制御部３０１、位置・姿勢特定部３０２、現実空間画像取得部３０３、仮想空間生成部３０４、三次元モデル制御部３０５、仮想空間画像取得部３０６、複合現実画像生成部３０７を備える。更に情報処理装置１０１は機能部として、表示制御部３０８、データ管理部３０９、変数制御部３１０、データ比較部３１１、画面生成部３１２、操作受付部３１３、距離算出部３１４を備える。
【００３５】
通信制御部３０１は、情報処理装置１０１と通信可能なＨＭＤ１０２と赤外線カメラ１０４との各種情報の送受信を行う機能部である。通信制御部３０１は、前述したビデオコントローラ２０６、通信Ｉ／Ｆコントローラ２０８、汎用バス２０９等を通じてこれらの装置と情報の送受信を行う。
【００３６】
位置・姿勢特定部３０２は、赤外線カメラ１０４から取得したＨＭＤ１０２の現実空間における位置及び姿勢（向き）を示す情報に基づいて、仮想空間における位置及び姿勢を特定するための機能部である。本実施形態では、ＨＭＤ１０２にオプティカルマーカ１０３が装着されているため、現実空間におけるオプティカルマーカ１０３の位置及び姿勢をまず取得する。そして、現実空間の座標系（赤外線カメラ１０４の座標系）と仮想空間の座標系とはあらかじめキャリブレーション（位置合わせ）がなされているので、これに基づいて現実空間における位置及び姿勢に対応する仮想空間上の位置及び姿勢を特定する。尚、現実空間画像取得部３０３で右目・左目ビデオカメラ２２１から取得した右目用の現実空間画像と左目用の現実空間画像とを用いて、三角測量等の方法により、現実空間の物体の位置及び姿勢を特定してもよい。
【００３７】
また、位置・姿勢特定部３０２は、現実空間画像取得部３０３が取得した現実空間画像を解析して、現実空間画像に写る二次元マーカの位置や形状を特定し、現実空間におけるターゲットマーカの位置及び姿勢を特定することも可能である。また、位置・姿勢特定部３０２は、この現実空間画像におけるターゲットマーカの位置及び姿勢から、仮想空間における位置及び姿勢も特定する。
【００３８】
現実空間画像取得部３０３は、ＨＭＤ１０２の右目・左目ビデオカメラ２２１で撮影された現実空間画像を取得する機能部である。
【００３９】
仮想空間生成部３０４は、情報処理装置１０１の外部メモリ２１１に記憶されている情報に基づいて仮想空間を生成する機能部である。仮想空間は情報処理装置１０１の内部に生成される仮想的な空間であるので、その空間の形や大きさに関する情報が外部メモリ２１１に記憶されており、これに基づいて仮想空間を生成する。仮想空間には三次元モデルを配置可能である。三次元モデルは三次元モデル制御部３０５によって配置される。
【００４０】
三次元モデル制御部３０５は、三次元モデルを仮想空間に配置するための機能部である。仮想空間が生成された場合には、あらかじめ定義された位置及び姿勢で仮想空間上に三次元モデルを配置する。必要に応じて、配置された三次元モデルを異なる位置及び姿勢で再配置（移動）する。また、三次元モデル制御部３０５は、位置・姿勢特定部３０２で特定した、仮想空間におけるターゲットマーカの位置及び姿勢に基づいて、三次元モデルを仮想空間上に配置することができる。すなわち、複合現実画像を生成したときに、ターゲットマーカ１０５に重畳させるようにして三次元モデルを配置させることが可能である。更には、三次元モデル制御部３０５は、仮想空間に配置した三次元モデルの表示形態を変更することができる。例えば、三次元モデルの色を変更したり、形状を変更したりすることができる。
【００４１】
仮想空間画像取得部３０６は、仮想空間生成部３０４で生成した仮想空間の画像を取得する機能部である。仮想空間画像取得部３０６が仮想空間の画像を取得する場合には、位置・姿勢特定部３０２で特定した仮想空間におけるＨＭＤ１０２の位置及び姿勢に基づいて仮想空間上に視点を設定する。そして、当該視点から見た場合の仮想空間画像を生成し、これを取得する。この視点に仮想的なカメラを設置し、仮想空間を撮像するようにすればよい。すなわちレンダリングするということである
【００４２】
複合現実画像生成部３０７は、現実空間画像取得部３０３で取得した現実空間画像に仮想空間画像取得部３０６で取得した仮想空間画像を重畳することにより、複合現実画像を生成する機能部である。
【００４３】
表示制御部３０８は、情報処理装置１０１に接続されたＨＭＤ１０２の右目・左目ディスプレイ２２２や情報処理装置１０１に接続されたディスプレイ２１２における各種情報の表示制御を行う機能部である。特に、複合現実画像生成部３０７で生成された複合現実画像をＨＭＤ１０２の右目・左目ディスプレイ２２２に表示させる機能を有する。
【００４４】
データ管理部３０９は、情報処理装置１０１のＲＡＭ２０３や外部メモリ２１１等の記憶部に記憶されるデータを管理するための機能部である。必要に応じて、データの追加・更新・削除等を行う。
【００４５】
変数制御部３１０は、情報処理装置１０１が実行するプログラムで利用する変数の制御を行うための機能部である。変数の宣言や代入等の処理を実行する。
【００４６】
データ比較部３１１は、外部メモリ２１１等に記憶された複数の三次元モデルを比較し、その差分を特定するための機能部である。三次元モデルは、自身のポリゴン数や位置・姿勢の情報を有しているので、この情報を用いて比較することにより差分があるか否かを特定する。また、従来技術の通り、体積や面積による比較や画像処理による比較であってもよい。
【００４７】
画面生成部３１２は、仮想空間上に表示する操作画面を生成するための機能部である。本実施形態においては、操作画面を仮想空間上に表示するため、生成される画面は三次元モデルである。
【００４８】
操作受付部３１３は、画面生成部３１２によって生成された操作画面に対する選択操作を受け付けるための機能部である。仮想空間上に表示された操作画面に対する操作は、ターゲットマーカ１０５を用いて行う。ターゲットマーカ１０５の仮想空間における位置及び姿勢が位置・姿勢特定部３０２によって特定されるので、この位置及び姿勢に基づいて、ターゲットマーカ１０５の上部にカーソルオブジェクトを配置する。このカーソルオブジェクトと操作画面上のボタンとが一定時間接触した場合に、ボタンが押下（選択）されたと判断する。操作画面に対する操作方法はこれに限らず、ＨＭＤ１０２を装着するユーザの指によって操作されてもよいし、情報処理装置１０１のディスプレイ２１２に操作画面を表示して入力デバイス２１０によって操作を受け付けてもよい。
【００４９】
距離算出部３１４は、仮想空間上の二点間の距離を算出するための機能部である。三平方の定理等を用いて、仮想空間上の座標系における二点間の距離を算出する。
【００５０】
次に、本発明の実施形態における全体的な処理の流れの一例について、図４に示すフローチャートを用いて説明する。以下説明する、Ｓ４０１乃至Ｓ４１２の各ステップは、情報処理装置１０１のＣＰＵ２０１が各機能部を動作することにより実行される処理である。
【００５１】
ステップＳ４０１では、情報処理装置１０１は、設計変更前の組立品と設計変更後の組立品との差分を特定するための処理を実行する。図５に差分特定処理の詳細な処理の流れを示す。
【００５２】
図５は、差分特定処理の詳細な処理の流れの一例を示すフローチャートである。以下説明する、Ｓ５０１乃至Ｓ５０９の各ステップは、情報処理装置１０１のＣＰＵ２０１が各機能部を動作することにより実行される処理である。
【００５３】
ステップＳ５０１では、情報処理装置１０１のデータ管理部３０９は、外部メモリ２１１に記憶されている設計変更前の組立品データ（以下、旧組立品データという。）と、設計変更後の組立品データ（以下、新組立品データという。）とを取得する（取得手段）。すなわち、設計変更前の第一の三次元モデルと、設計変更後の第二の三次元モデルとを取得するということである。ユーザはあらかじめこれらのデータを外部メモリ２１１に記憶しておく。そして、データ管理部３０９は、ユーザから指定された旧組立品データと新組立品データとを取得する。本実施形態において組立品データとは、ＣＡＤデータのうちのアセンブリデータである。
【００５４】
図６（ａ）では、旧組立品データと新組立品データ（以下、これらを新旧組立品データという。）の参照構造の一例を、それぞれ６０１と６０２に示す。新旧組立品データはトップアセンブリであるので、複数の部品やサブアセンブリから構成されている。例えば、旧組立品データＡは、部品データＢと部品データＣとアセンブリデータＤから構成されており、更にサブアセンブリであるアセンブリデータＤは、部品データＥ・Ｆ・Ｇから構成されている。以下、アセンブリデータの参照先の部品やサブアセンブリを参照先データと称する。
【００５５】
ステップＳ５０２では、情報処理装置１０１のデータ管理部３０９は、ステップＳ５０１で取得した新旧組立品データの参照先である参照先データに関する情報を取得し、図６（ｂ）に示すような比較表６１０を作成する。比較表６１０は、旧参照先データ名６１１と新参照先データ名６１２を備えており、それぞれ比較元と比較先の参照先データの名称を示している。旧組立品データの参照先データに対応する新組立品データの参照先データがあれば同じ行に並べて格納し、どちらか一方にしかない参照先データの場合には、当該参照先データが存在しない組立品データの項目は空欄にする。このようにして、図６（ａ）に示す旧組立品データＡと新組立品データＡの比較表６１０を作成した結果が図６（ｂ）である。
【００５６】
ステップＳ５０３では、情報処理装置１０１のデータ管理部３０９は、図７に示すような差分リスト７００を生成する。ステップＳ５０３の処理では、空の状態の差分リスト７００を生成する。
【００５７】
図７の差分リスト７００は、設計変更前後でどのような差分があるのかを示すためのデータテーブルである。差分リスト７００は、差分データ名７０１、追加フラグ７０２、形状変更フラグ７０３、位置姿勢変更フラグ７０４、削除フラグ７０５を備える。データテーブルのテーブル構成はこれに限らない。
【００５８】
差分データ名７０１は、設計変更前後で差分のあった参照先データの名称が格納される項目である。本実施形態でいう差分とは、設計変更前後の相違点のことをいう。例えば、旧組立品データに対する新たな参照先データの追加、参照先データの形状変更、参照先データの位置または姿勢の変更、旧組立品データからの参照先データの削除を指す。追加フラグ７０２、形状変更フラグ７０３、位置姿勢変更フラグ７０４、削除フラグ７０５は、これらの差分があった場合にフラグが立てられる項目である。
【００５９】
図５の説明に戻る。ステップＳ５０４では、情報処理装置１０１の変数制御部３１０は、カウンタの変数ｉを宣言し、初期値として０を代入する。そして、ステップＳ５０５では、情報処理装置１０１の変数制御部３１０は、変数ｉをインクリメントする。
【００６０】
ステップＳ５０６では、情報処理装置１０１のデータ管理部３０９は、比較表６１０のレコードのうち、ｉ行目のレコード参照先データを外部メモリ２１１等から取得し、これを参照する。ここで取得するのは、旧参照先データ名６１１が示す、旧組立品データを構成する参照先データと、新参照先データ名６１２が示す、新組立品データを構成する参照先データである。旧参照先データ名６１１と新参照先データ名６１２のいずれかが空欄の場合には、名称が入力されている参照先データのみ取得する。
【００６１】
ステップＳ５０７では、情報処理装置１０１のデータ比較部３１１は、ステップＳ５０６で取得した、旧組立品データを構成する参照先データと、新組立品データを構成する参照先データとを比較する。ここでいう比較は、新たに参照先データが追加されたか、参照先データの形状が変更されたか、参照先データの位置または姿勢が変更されたか、参照先データが削除されたか等を、ステップＳ５０６で取得した参照先データ同士を比較することで特定する（特定手段）。
【００６２】
例えば、旧組立品データには存在しないが、新組立品データに存在する参照先データの場合（ステップＳ５０６で旧組立品データを構成する参照先データが取得できなかった場合）には、新たに追加された参照先データであると特定する。ステップＳ５０６で取得した旧組立品データの参照先データが有するポリゴン数と新組立品データの参照先データが有するポリゴン数とが一致しない場合には、形状変更がなされた参照先データであると特定する。一致不一致の判定はポリゴン数に限らず、体積や面積といった別の要素を用いた比較によってもよい。また、旧組立品データの参照先データの親であるアセンブリデータと新組立品データの参照先データの親であるアセンブリデータとが示すそれぞれの位置または姿勢を示す情報が一致しない場合、位置または姿勢が変更された参照先データであると特定する。旧組立品データには存在するが新組立品データには存在しない参照先データの場合（ステップＳ５０６で新組立品データを構成する参照先データが取得できなかった場合）には、削除された参照先データであると特定する。このいずれにも該当しないのであれば、取得した参照先データについては設計変更がなかったと特定する。
【００６３】
このように比較した結果、ステップＳ５０６で参照した、新旧組立品データにおける参照先データに設計変更があったか、すなわち差分があるか否かを判定する。差分がある（追加、形状変更、位置または姿勢変更、削除があった）と判定した場合には、ステップＳ５０８に処理を進める。差分がないと判定した場合には、ステップＳ５０９に処理を進める。
【００６４】
ステップＳ５０８では、情報処理装置１０１のデータ管理部３０９は、ステップＳ５０３で生成された差分リスト７００に新たなレコードを追加し、ステップＳ５０６で参照した参照先データの名称を差分データ名７０１に追加する。そして、その差分内容に対応するフラグに“１”を格納する。つまりフラグを立てる。それ以外のフラグには“０”を格納する。このようにすることで、設計変更のあった参照先データに関する情報を差分リスト７００に追加していく。すべての参照先データに対してステップＳ５０８を実行した結果が、図７に示す差分リスト７００である。以下、設計変更のあった参照先データのことを、差分データと称する。
【００６５】
ステップＳ５０９では、情報処理装置１０１のデータ管理部３０９は、比較表６１０のｉ行目が最終行（最終レコード）であるか否かを判定する。最終行であると判定した場合には、差分特定処理を終了し、ステップＳ４０１の次のステップに処理を進める。最終行でないと判定した場合には、ステップＳ５０５に処理を戻す。
【００６６】
このようにして、旧組立品データを構成する複数の参照先データと、新組立品データを構成する複数の参照先データとを比較し、設計変更がなされた参照先データとその変更内容を特定する。
【００６７】
図４に説明を戻す。ステップＳ４０１が完了すると、ステップＳ４０２では、情報処理装置１０１の仮想空間生成部３０４は、外部メモリ２１１に記憶された仮想空間情報を取得する。仮想空間情報とは、仮想空間を生成するための各種情報のことである。具体的には、仮想空間の形やその大きさ、また配置する三次元モデルやその配置場所といった、仮想空間を形作るために必要な情報である。そして、仮想空間生成部３０４は、取得した仮想空間情報を用いて、仮想空間を生成する。生成される仮想空間は、仮想空間情報が示す形や大きさの仮想空間であり、更には仮想空間情報が示す三次元モデルが仮想空間上に配置される。本実施形態では、仮想空間生成部３０４は、ステップＳ５０１で取得した旧組立品データと新組立品データとを仮想空間上に配置する。新旧組立品データは、前述した通りアセンブリデータであるので、参照先データを三次元モデルとして表示し、当該アセンブリデータに定義された位置や姿勢で配置する。これにより新旧組立品データを示す三次元モデルが仮想空間上に配置される。
【００６８】
ステップＳ４０３では、情報処理装置１０１の現実空間画像取得部３０３は、ＨＭＤ１０２の右目・左目ビデオカメラ２２１から現実空間画像を取得し、これらをＲＡＭ２０３に記憶する。
【００６９】
ステップＳ４０４では、情報処理装置１０１の位置・姿勢特定部３０２は、ＨＭＤ１０２の現実空間における位置及び姿勢を示す情報を取得する。前述した通り、ＨＭＤ１０２が備えるオプティカルマーカ１０３を赤外線カメラ１０４が検知することで特定した位置及び姿勢を示す情報を、赤外線カメラ１０４から取得する。そして、位置・姿勢特定部３０２は、取得した位置及び姿勢を示す情報から仮想空間における位置及び姿勢を特定する。特定した位置及び姿勢は、ＨＭＤ位置・姿勢情報としてＲＡＭ２０３に記憶する。この情報は現在のフレームにおけるＨＭＤ１０２の位置及び姿勢であるので、フレームが切り替わるごとにこの情報が更新される。
【００７０】
ステップＳ４０５では、情報処理装置１０１の位置・姿勢特定部３０２は、ターゲットマーカ１０５の現実空間における位置及び姿勢を示す情報を特定する（位置特定手段）。具体的には、前述した通り、ターゲットマーカ１０５をＨＭＤ１０２が撮影した現実空間画像から検出する。そして、その現実空間画像に写るターゲットマーカ１０５の形状や右目・左目ビデオカメラ２２１で取得した２枚の現実空間画像から特定される視差によって、ターゲットマーカ１０５の現実空間における位置及び姿勢を推定する。そして、この現実空間における位置及び姿勢から仮想空間における位置及び姿勢を特定する。換言すれば、現実空間においてＨＭＤ１０２を装着するユーザから指定された位置に対応する仮想空間上の位置を特定するということである。特定した位置及び姿勢は、ターゲットマーカ位置・姿勢情報としてＲＡＭ２０３に記憶する。この情報は現在のフレームにおけるＨＭＤ１０２の位置及び姿勢であるので、フレームが切り替わるごとにこの情報が更新される。
【００７１】
ステップＳ４０６では、情報処理装置１０１の画面生成部３１２は、ステップＳ５０８で参照先データが追加された差分リスト７００を取得し、差分データ名７０１の一覧を含む操作画面を生成する。操作画面の一例を図８に示す。
【００７２】
操作画面８００は、表示設定としてターゲットボタン８０１と表示階層ボタン８０２と表示対象ボタン８０３とを備えている。ターゲットボタン８０１は、ターゲットマーカ１０５に差分データとして部品データを重畳表示させるのか、当該部品データを含むアセンブリデータを重畳表示させるのかを選択するためのボタンである。表示階層ボタン８０２は、ターゲットボタン８０１でアセンブリデータを重畳表示すると選択された場合に、いくつ上の階層のアセンブリデータを重畳表示させるのかを選択するためのボタンである。例えば、“１”が選択されると差分データの親であるアセンブリデータ、“２”が選択されると差分データの親の親であるアセンブリデータがターゲットマーカ１０５に重畳表示されることになる。表示対象ボタン８０３は、旧組立品データにおける差分データをターゲットマーカ１０５に重畳表示させるのか、新組立品データにおける差分データをターゲットマーカ１０５に重畳表示させるのかを選択するためのボタンである。
【００７３】
また、操作画面８００は差分データリスト８０４を備えている。差分データリスト８０４は、差分リスト７００の差分データ名７０１に示す差分データの名称が一覧表示される領域である。それぞれ差分データの名称がボタン形式で表示される。選択されたボタンに対応する差分データが、表示設定に従ってターゲットマーカ１０５に重畳表示される。
【００７４】
この操作画面８００は、ステップＳ４０２で生成された仮想空間上に配置されるので、三次元モデルとして生成する。具体的には、画面生成部３１２は操作画面８００を表す画像データを生成し、三次元モデル制御部３０５が生成する三次元モデルの面にテクスチャとして貼り付けることで、仮想空間上に配置する操作画面８００の三次元モデルを生成する。操作画面８００を配置する位置は、あらかじめ決められた位置であってもよいし、仮想空間に設定されるＨＭＤ１０２の視点から所定距離・方向だけ離れた位置に設置し、視点に追従して配置位置を移動するようにしてもよい。
【００７５】
ステップＳ４０７では、情報処理装置１０１は、ユーザから指定された差分データを仮想空間上に配置するための処理を実行する。図９Ａ及び図９Ｂに差分データ配置処理の詳細な処理の流れを示す。
【００７６】
図９Ａ及び図９Ｂは、差分データ配置処理の詳細な処理の流れの一例を示すフローチャートである。以下説明する、Ｓ９０１乃至Ｓ９１７の各ステップは、情報処理装置１０１のＣＰＵ２０１が各機能部を動作することにより実行される処理である。
【００７７】
ステップＳ９０１では、情報処理装置１０１の操作受付部３１３は、仮想空間に配置された操作画面８００に対する操作内容を特定する。本実施形態においては、操作画面８００に対する操作はターゲットマーカ１０５を用いて行われる。ターゲットマーカ１０５が指し示す方向にカーソルオブジェクトが重畳表示され、このカーソルオブジェクトと操作画面８００上のボタンとが一定時間接触した場合に、当該ボタンが押下されたと判定する。
【００７８】
図１０は、ターゲットマーカ１０５により操作画面８００が操作されている様子を示す図である。仮想空間には、ステップＳ５０１で取得した旧組立品データ１００１と新組立品データ１００２と、ステップＳ４０６で生成された操作画面８００とが配置されている。このような仮想空間を示す仮想空間画像が、後述する処理において現実空間画像に重畳されてＨＭＤ１０２に表示されている。更に、仮想空間生成部３０４は、ターゲットマーカ１０５の仮想空間における位置及び姿勢に基づいて、ターゲットマーカ１０５が指し示す方向に対して、カーソルオブジェクト１００３を仮想空間に配置する。このカーソルオブジェクト１００３は、ＨＭＤ１０２を装着するユーザが現実空間でターゲットマーカ１０５を移動させても、カーソルオブジェクト１００３がターゲットマーカ１０５の指し示す方向に追従する。そして、ユーザは、差分データリスト８０４に表示された差分データのうち、ターゲットマーカ１０５に重畳表示させたい場合には、このターゲットマーカ１０５のカーソルオブジェクト１００３を、表示したい差分データの名称に対して一定時間接触させる。これにより、ボタン押下が行われる。
【００７９】
ステップＳ９０２では、情報処理装置１０１の操作受付部３１３は、ステップＳ９０１で特定された操作内容が、現在、仮想空間上に配置している差分データとは異なる差分データに対応するボタンが選択されたか否かを判定する。例えば、現在仮想空間上に配置されている差分データが“部品データＢ”であり、新たに選択された差分データが“部品データＣ”である場合や、仮想空間上にどの差分データも配置されていない状態で、差分データに対応するボタンが押下された場合である。このような場合には、ステップＳ９０３に処理を進める。そうでない場合には、差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【００８０】
ステップＳ９０３では、情報処理装置１０１のデータ管理部３０９は、カーソルオブジェクト１００３によって押下されたボタンに対応する差分データの各種フラグ（追加フラグ７０２〜削除フラグ７０５）を参照する。以下、カーソルオブジェクト１００３によって押下されたボタンに対応する差分データを、選択差分データと称する。
【００８１】
ステップＳ９０４では、情報処理装置１０１のデータ管理部３０９は、選択差分データの追加フラグ７０２が“１”であるか否か、すなわち追加フラグ７０２が立っているか否かを判定する。選択差分データの追加フラグ７０２が“１”であると判定した場合には、ステップＳ９０５に処理を進める。選択差分データの追加フラグ７０２が“０”であると判定した場合には、ステップＳ９０８に処理を進める。
【００８２】
ステップＳ９０５では、情報処理装置１０１のデータ管理部３０９は、新組立品データを構成する選択差分データを外部メモリ２１１から取得する。すなわち、旧組立品データに対して新たに追加された選択差分データを外部メモリ２１１から取得するということである。
【００８３】
ステップＳ９０６では、情報処理装置１０１の三次元モデル制御部３０５は、仮想空間に配置されている新組立品データのうち、選択差分データの部分に対して色づけを行う。換言すれば、仮想空間に配置されている新組立品データにおいて選択差分データが識別可能な表示形態となるように設定を行う。そのため、表示形態としては色づけに限らず、選択差分データを点滅させたり、矢印等で識別表示したりしてもよい。
【００８４】
ステップＳ９０７では、情報処理装置１０１の画面生成部３１２は、操作画面８００の表示対象ボタン８０３を選択できない状態の画面として生成しなおし、仮想空間に再配置する。新たに追加された差分データであるということは、設計変更前は存在しなかったということなので、表示対象ボタン８０３で“ＯＬＤ”が選択されたとしても表示するものがない。よって、表示対象ボタン８０３が押下できないようにしている。ステップＳ９０７が完了したらステップＳ９１１に処理を進める。
【００８５】
一方、ステップＳ９０８では、情報処理装置１０１のデータ管理部３０９は、選択差分データの形状変更フラグ７０３が“１”であるか否か、すなわち形状変更フラグ７０３が立っているか否かを判定する。選択差分データの形状変更フラグ７０３が“１”であると判定した場合には、ステップＳ９０９に処理を進める。選択差分データの形状変更フラグ７０３が“０”であると判定した場合には、図９ＢのステップＳ９１３に処理を進める。
【００８６】
ステップＳ９０９では、情報処理装置１０１のデータ管理部３０９は、新組立品データを構成する選択差分データを外部メモリ２１１から取得する。すなわち、形状変更後の選択差分データを外部メモリ２１１から取得するということである。新たに追加された差分データとは異なり、設計変更前の選択差分データも存在するが、ユーザは設計変更された形状について確認をしたいため、設計変更後の選択差分データを取得している。尚、どちらの選択差分データを最初に表示するのかが設定できてもよい。すなわち、設計変更前の選択差分データを初期表示する設定だった場合には、ステップＳ９０９は設計変更前の選択差分データを取得する。
【００８７】
ステップＳ９１０では、情報処理装置１０１の三次元モデル制御部３０５は、仮想空間に配置されている新旧組立品データのうち、選択差分データの部分に対して色づけを行う（表示形態変更手段）。換言すれば、仮想空間に配置されている新旧組立品データにおいて選択差分データが識別可能な表示形態となるように設定を行う。そのため、表示形態としては色づけに限らず、選択差分データを点滅させたり、矢印等で識別表示したりしてもよい。ステップＳ９１０は、ステップＳ９０７とは異なり、旧組立品データにおいても選択差分データの表示形態を変更する。
【００８８】
ステップＳ９１１では、情報処理装置１０１の距離算出部３１４は、ユーザの仮想空間における位置から、仮想空間に配置されている新組立品データの三次元モデルに含まれる選択差分データの三次元モデルの位置までの距離を算出する（距離取得手段）。選択差分データの位置は、選択差分データを示す三次元モデルの中心点の位置とするが、これに限らない。そして、算出された距離が所定距離以上（または所定距離より大きい）であるか否かを判定する。すなわち、算出された距離が所定の条件を満たすか否かを判定するということである。仮想空間に配置された新組立品データの三次元モデルの近くにユーザが存在するのであれば、ユーザは新組立品データに含まれる選択差分データの三次元モデルを直接確認すればよい。しかし、仮想空間に配置された新組立品データの三次元モデルから離れた位置にユーザが存在するのであれば、ユーザは新組立品データに近寄って確認しなければならない。よって、こうした場合にはターゲットマーカ１０５に選択差分データを重畳表示させることで、近寄る手間を軽減できる。そのため、ステップＳ９１１ではこれらの距離に関する判定を行っている。所定距離以上離れていると判定した場合には、ステップＳ９１２に処理を進める。そうでない場合には、差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【００８９】
尚、本実施形態ではステップＳ９１１を必ず実行する形態としているが、設定によりこれを実行しない形態であってもよい。すなわち、ステップＳ９１１で算出した距離に関わらず、取得した選択差分データの三次元モデルをターゲットマーカ１０５に重畳表示する形態であってもよい。
【００９０】
ステップＳ９１２では、情報処理装置１０１の仮想空間生成部３０４は、ステップＳ４０５で特定したターゲットマーカ１０５の仮想空間における位置及び姿勢で、Ｓ９０５またはＳ９０９で取得した選択差分データの三次元モデルを配置する（配置手段）。こうすることで、現実空間画像に仮想空間画像を重畳した際に、ターゲットマーカ１０５の位置に選択差分データの三次元モデルが重畳されることになる。つまり、ＨＭＤ１０２を装着するユーザは、あたかも現実空間のターゲットマーカ１０５に選択差分データの三次元モデルが貼り付いているかのように見える。ステップＳ９１２の処理が完了したら、差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【００９１】
図１１は、形状変更がなされた選択差分データがターゲットマーカ１０５に表示された様子を示す図である。図１０に示すように、表示対象の差分データとして“部品データＢ”が選択されると、この“部品データＢ”の変更内容を示すフラグを確認する。すると、図７に示す通り、“部品データＢ”は形状変更フラグ７０３にフラグが立っているので、形状変更がなされた選択差分データであることがわかる。よって、ステップＳ９０９で設計変更後の選択差分データを外部メモリ２１１から取得し、この取得した選択差分データの三次元モデルをターゲットマーカ１０５の位置及び姿勢で仮想空間上に配置する。また、新旧組立品データの三次元モデルにおいて、選択差分データの三次元モデルの表示形態を変更し、選択差分データを他の参照先データとは識別可能にする。
【００９２】
そして、この仮想空間を示す仮想空間画像を生成して、現実空間画像に重畳した結果が図１１である。図１１に示す通り、ターゲットマーカ１０５の位置に設計変更後の選択差分データの三次元モデル（図１１では、車のホイール）が重畳表示される。また、新旧組立品データの三次元モデルも表示されており、このうち選択差分データに対応する箇所が識別表示される。図１１では、設計変更前の選択差分データが１１０１であり、設計変更後の選択差分データが１１０２である。いずれも新旧組立品データの三次元モデルを構成している選択差分データの三次元モデルである。このように新旧組立品データに組み込まれた状態の選択差分データとは別に、ユーザが有するターゲットマーカ１０５に選択差分データの三次元モデルを表示することで、設計変更がなされた選択差分データを手軽に確認することができる。
【００９３】
図９Ｂに説明を移す。ステップＳ９１３では、情報処理装置１０１の画面生成部３１２は、操作画面８００のターゲットボタン８０１と表示階層ボタン８０２と表示対象ボタン８０３とを選択できない状態の画面として生成しなおし、仮想空間に再配置する。後述する位置または姿勢が変更された選択差分データと削除された選択差分データについては、設計変更後の状態を手元のターゲットマーカ１０５において確認する必要性があまりない。そのため後述する処理において、これらの選択差分データの三次元モデルはターゲットマーカ１０５に重畳させないので、操作画面８００の各種ボタンも選択できないように制御する。
【００９４】
ステップＳ９１４では、情報処理装置１０１のデータ管理部３０９は、選択差分データの位置姿勢変更フラグ７０４が“１”であるか否か、すなわち位置姿勢変更フラグ７０４が立っているか否かを判定する。選択差分データの位置姿勢変更フラグ７０４が“１”であると判定した場合には、ステップＳ９１５に処理を進める。選択差分データの位置姿勢変更フラグ７０４が“０”であると判定した場合には、ステップＳ９１６に処理を進める。
【００９５】
ステップＳ９１５では、情報処理装置１０１の三次元モデル制御部３０５は、仮想空間に配置されている新旧組立品データのうち、選択差分データの部分に対して色づけを行う。換言すれば、仮想空間に配置されている新旧組立品データにおいて選択差分データが識別可能な表示形態となるように設定を行う。そのため、表示形態としては色づけに限らず、選択差分データを点滅させたり、矢印等で識別表示したりしてもよい。そして、ターゲットマーカ１０５に、位置または姿勢が変更された選択差分データの三次元モデルを重畳表示するための処理を行わずに差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【００９６】
一方、ステップＳ９１６では、情報処理装置１０１のデータ管理部３０９は、選択差分データの削除フラグ７０５が“１”であるか否か、すなわち削除フラグ７０５が立っているか否かを判定する。選択差分データの削除フラグ７０５が“１”であると判定した場合には、ステップＳ９１７に処理を進める。選択差分データの削除フラグ７０５が“０”であると判定した場合には、差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【００９７】
ステップＳ９１７では、情報処理装置１０１の三次元モデル制御部３０５は、仮想空間に配置されている旧組立品データのうち、選択差分データの部分に対して色づけを行う。換言すれば、仮想空間に配置されている旧組立品データにおいて選択差分データが識別可能な表示形態となるように設定を行う。そのため、表示形態としては色づけに限らず、選択差分データを点滅させたり、矢印等で識別表示したりしてもよい。そして、ターゲットマーカ１０５に、削除された選択差分データの三次元モデルを重畳表示するための処理を行わずに差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【００９８】
尚、本実施形態においては、位置または姿勢が変更された選択差分データの三次元モデルはターゲットマーカ１０５に重畳表示させていないが、これらも重畳表示させてもよい。
【００９９】
図４に説明を戻す。ステップＳ４０７の処理が完了すると、ステップＳ４０８では、情報処理装置１０１は、操作画面８００における表示設定の内容を反映するための処理を実行する。図１２に表示設定反映処理の詳細な処理の流れを示す。
【０１００】
図１２は、表示設定反映処理の詳細な処理の流れの一例を示すフローチャートである。以下説明する、Ｓ１２０１乃至Ｓ１２１３の各ステップは、情報処理装置１０１のＣＰＵ２０１が各機能部を動作することにより実行される処理である。
【０１０１】
ステップＳ１２０１では、情報処理装置１０１の操作受付部３１３は、仮想空間に配置された操作画面８００に対する操作内容を特定する。特定方法は、ステップＳ９０１と同様である。
【０１０２】
ステップＳ１２０２では、情報処理装置１０１の操作受付部３１３は、表示階層ボタン８０２に対する押下を受け付けたか否かを判定する。表示階層ボタン８０２に対する押下を受け付けたと判定した場合には、ステップＳ１２０３に処理を進める。そうでない場合には、ステップＳ１２０４に処理を進める。
【０１０３】
ステップＳ１２０３では、情報処理装置１０１のデータ管理部３０９は、表示階層ボタン８０２に対する押下に応じて決定される、表示階層に関する情報をＲＡＭ２０３に保存する。表示階層ボタン８０２は、左右の矢印が押下されることで、表示階層の増減を行うことができる。この情報を用いて、どの階層のアセンブリデータまでを表示すればよいのか決定する。ステップＳ１２０３の処理が完了したら、ステップＳ１２０９に処理を進める。
【０１０４】
ステップＳ１２０４では、情報処理装置１０１の操作受付部３１３は、表示対象ボタン８０３に対する押下を受け付けたか否かを判定する。表示対象ボタン８０３に対する押下を受け付けたと判定した場合には、ステップＳ１２０５に処理を進める。そうでない場合には、ステップＳ１２０８に処理を進める。
【０１０５】
ステップＳ１２０５では、情報処理装置１０１の操作受付部３１３は、表示対象ボタン８０３のうち、“ＮＥＷ”のボタンが押下されたのか、“ＯＬＤ”のボタンが押下されたのかを判定する。“ＮＥＷ”のボタンが押下されたと判定した場合には、ステップＳ１２０６に処理を進める。“ＯＬＤ”のボタンが押下されたと判定した場合には、ステップＳ１２０７に処理を進める。
【０１０６】
ステップＳ１２０６では、情報処理装置１０１のデータ管理部３０９は、新組立品データを構成する選択差分データを外部メモリ２１１から取得する。一方、ステップＳ１２０７では、情報処理装置１０１のデータ管理部３０９は、旧組立品データを構成する選択差分データを外部メモリ２１１から取得する。本実施形態では、形状変更が行われた選択差分データ以外は、表示対象ボタン８０３の操作が行えないように制御しているが、この制御を行わない場合には、選択差分データが存在しないために取得できない。そのため、取得できなかった場合には、表示設定反映処理を終了する形態であってもよい。
【０１０７】
ステップＳ１２０８では、情報処理装置１０１の操作受付部３１３は、ターゲットボタン８０１に対する押下を受け付けたか否かを判定する。ターゲットボタン８０１に対する押下を受け付けたと判定した場合には、ステップＳ１２０９に処理を進める。そうでない場合には、表示設定反映処理を終了し、ステップＳ４０８の次のステップに処理を進める。
【０１０８】
ステップＳ１２０９では、情報処理装置１０１の距離算出部３１４は、ＨＭＤ１０２を装着するユーザの仮想空間における位置から、仮想空間に配置されている組立品データの三次元モデルに含まれる選択差分データの三次元モデルの位置までの距離を算出する。ここでいう選択差分データとは、ターゲットマーカ１０５に重畳表示する選択差分データに対応する、仮想空間上の組立品データ内の選択差分データである。例えば、新たに表示対象ボタン８０３で“ＯＬＤ”が選択された場合には、旧組立品データの三次元モデルに含まれる、取得した設計変更前の選択差分データの三次元モデルの位置が基準となる。距離の算出は前述した通りである。そして、算出された距離が所定距離以上（または所定距離より大きい）であるか否かを判定する。所定距離以上離れていると判定した場合には、ステップＳ１２１０に処理を進める。そうでない場合には、表示設定反映処理を終了し、ステップＳ４０８の次のステップに処理を進める。
【０１０９】
尚、本実施形態ではステップＳ１２０９を必ず実行する形態としているが、設定によりこれを実行しない形態であってもよい。すなわち、ステップＳ１２０９で算出した距離に関わらず、取得した選択差分データの三次元モデルをターゲットマーカ１０５に重畳表示する形態であってもよい。
【０１１０】
ステップＳ１２１０では、情報処理装置１０１の操作受付部３１３は、ターゲットボタン８０１のうち、“アセンブリ”のボタンが押下されたのか、“部品”のボタンが押下されたのかを判定する。“アセンブリ”のボタンが押下されたと判定した場合には、ステップＳ１２１１に処理を進める。“部品”のボタンが押下されたと判定した場合には、ステップＳ１２１３に処理を進める。
【０１１１】
ステップＳ１２１１では、情報処理装置１０１のデータ管理部３０９は、ステップＳ１２０３で保存された階層の情報を取得し、ターゲットマーカ１０５に重畳する選択差分データから当該情報が示す階層の分だけ遡ったアセンブリデータを特定する。例えば、図６（ａ）の参照構造で説明する。ターゲットマーカ１０５に重畳する選択差分データが“部品データＥ”で、階層の情報が“１”である場合には、“部品データＥ”の１階層上のアセンブリデータが特定されるので、この場合は、“アセンブリデータＤ”が特定されることになる。
【０１１２】
ステップＳ１２１２では、情報処理装置１０１の仮想空間生成部３０４は、ステップＳ４０５で特定したターゲットマーカ１０５の仮想空間における位置及び姿勢で、ステップＳ１２１１で取得したアセンブリデータの三次元モデルを配置する。すなわち、当該アセンブリデータを構成する参照先データを取得し、この参照先データの三次元モデルを当該アセンブリデータに設定された位置及び姿勢で配置して、アセンブリの三次元モデルを生成する。そして、この三次元モデルをターゲットマーカ１０５の位置及び姿勢で配置すればよい。
【０１１３】
一方、ステップＳ１２１３では、情報処理装置１０１の仮想空間生成部３０４は、ステップＳ４０５で特定したターゲットマーカ１０５の仮想空間における位置及び姿勢で、ターゲットマーカ１０５に重畳表示する選択差分データの三次元モデルを配置する。
【０１１４】
こうすることで、現実空間画像に仮想空間画像を重畳した際に、ターゲットマーカ１０５の位置に選択差分データまたはその親であるアセンブリの三次元モデルが重畳されることになる。ステップＳ１２１２またはＳ１２１３の処理が完了したら、表示設定反映処理を終了し、ステップＳ４０８の次のステップに処理を進める。
【０１１５】
図４に説明を戻す。ステップＳ４０９では、情報処理装置１０１の仮想空間画像取得部３０６は、仮想空間上に設定された視点から仮想空間を撮像することにより仮想空間画像を取得し、これをＲＡＭ２０３等に記憶する（仮想空間画像生成手段）。尚、ＨＭＤ１０２の右目・左目ディスプレイ２２２のそれぞれに表示するために右目用の仮想空間画像と左目用の仮想空間画像の２枚を取得する。
【０１１６】
ステップＳ４１０では、情報処理装置１０１の複合現実画像生成部３０７は、ステップＳ４０３で取得した現実空間画像とステップＳ４０９で取得した仮想空間画像とをＲＡＭ２０３等から読み出す。そして、当該現実空間画像に当該仮想空間画像を重畳し、複合現実画像を生成する。生成した複合現実画像はＲＡＭ２０３等に記憶する。尚、前述した通り、現実空間画像と仮想空間画像とは右目用と左目用の２枚ずつがＲＡＭ２０３等に記憶されているので、右目用の現実空間画像に右目用の仮想空間画像を重畳し、左目用の現実空間画像に左目用の仮想空間画像を重畳する。
【０１１７】
ステップＳ４１１では、情報処理装置１０１の表示制御部３０８は、ステップＳ４１０で生成した複合現実画像をＲＡＭ２０３等から読み出し、ビデオコントローラ２０６を通じてＨＭＤ１０２の右目・左目ディスプレイ２２２に表示する。ＲＡＭ２０３等に記憶された複合現実画像は、右目用と左目用の２枚が存在する。そのため、右目用の複合現実画像を右目・左目ディスプレイ２２２の右目のディスプレイに表示するよう制御し、左目用の複合現実画像を右目・左目ディスプレイ２２２の左目のディスプレイに表示するよう制御する。
【０１１８】
ステップＳ４１２では、情報処理装置１０１の操作受付部３１３は、ＨＭＤ１０２を装着しているユーザに複合現実感を提示する処理の終了指示があったか否かを判定する。例えば、前述したステップＳ４０３乃至ステップＳ４１１の処理を実行する情報処理装置１０１のアプリケーションの停止指示や終了指示があったか否かを判定する。終了指示があったと判定した場合には、本一連の処理を終了する。終了指示があったと判定しなかった場合、すなわち終了指示がなかった場合にはステップＳ４０３に処理を戻し、終了指示があるまでステップＳ４０３乃至ステップＳ４１２の処理を繰り返す。
【０１１９】
図１３は、形状変更前の選択差分データがターゲットマーカ１０５に重畳表示された様子を示す図である。ターゲットマーカ１０５によって表示対象ボタン８０３の“ＯＬＤ”が選択されると、形状変更前の選択差分データが取得され、ターゲットマーカ１０５に重畳表示される。１３０１は、図１１に示す１１０３の形状変更後の選択差分データが、形状変更後の選択差分データに入れ替わった様子を示している。このように、設計変更前後の選択差分データを切り替えて表示させることができる。
【０１２０】
図１４乃至図１６は、形状変更以外の設計変更がなされた選択差分データの様子を示す。図１４は、新たに追加された差分データが選択された場合を示している。新組立品データの１４０２に示すように、新しく差分データ（図１４では車のウィング）が追加されていることがわかる。そのため、この選択差分データを新組立品データにおいて識別表示する。また、１４０１に示すように、ターゲットマーカ１０５に選択差分データの三次元モデルを重畳表示する。
【０１２１】
図１５は、位置または姿勢が変更された差分データが選択された場合を示している。選択差分データの三次元モデル（図１５では車のドアミラー）は、旧組立品データにおける１５０１と新組立品データにおける１５０２とに示すように、位置が変更されている。そのため、この選択差分データを新旧組立品データにおいて識別表示する。また、位置または姿勢が変更された選択差分データの三次元モデルはターゲットマーカ１０５には重畳表示しないので、図１５においても重畳表示されていないことがわかる。
【０１２２】
図１６は、削除された差分データが選択された場合を示している。旧組立品データの１６０１に示すように、選択差分データ（図１６では車のマフラー）は旧組立品データの三次元モデルには存在していたが、新組立品データからは削除されている。そのため、旧組立品データにおいて選択差分データを識別表示する。また、削除された選択差分データの三次元モデルはターゲットマーカ１０５には重畳表示しないので、図１６においても重畳表示されていないことがわかる。
【０１２３】
以上説明したように、設計変更された部品データが構成する三次元モデルを仮想空間上で操作することなく、当該部品データを仮想空間上で閲覧可能となる。
【０１２４】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１２５】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１２６】
したがって、本発明の機能処理をコンピュータで実現（実行可能と）するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１２７】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１２８】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１２９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１３０】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１３１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１３２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１３３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１３４】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１３５】
１０１  情報処理装置
１０２  ＨＭＤ
１０３  オプティカルマーカ
１０４  赤外線カメラ
１０５  ターゲットマーカ
【図１】
2018005499.tif 000003
【図２】
2018005499.tif 000004
【図３】
2018005499.tif 000005
【図４】
2018005499.tif 000006
【図５】
2018005499.tif 000007
【図６】
2018005499.tif 000008
【図７】
2018005499.tif 000009
【図８】
2018005499.tif 000010
【図９Ａ】
2018005499.tif 000011
【図９Ｂ】
2018005499.tif 000012
【図１０】
2018005499.tif 000013
【図１１】
2018005499.tif 000014
【図１２】
2018005499.tif 000015
【図１３】
2018005499.tif 000016
【図１４】
2018005499.tif 000017
【図１５】
2018005499.tif 000018
【図１６】
2018005499.tif 000019