(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-11
(45)【発行日】2023-01-19
(54)【発明の名称】仮想空間制御装置、その制御方法、及びプログラム
(51)【国際特許分類】
G06F 30/10 20200101AFI20230112BHJP
G06F 3/04845 20220101ALI20230112BHJP
G06T 19/20 20110101ALI20230112BHJP
G09G 5/00 20060101ALI20230112BHJP
G09G 5/36 20060101ALI20230112BHJP
G09G 5/38 20060101ALI20230112BHJP
【FI】
G06F30/10
G06F3/04845
G06T19/20
G09G5/00 510H
G09G5/00 550C
G09G5/36 510V
G09G5/38 Z
(21)【出願番号】P 2021053076
(22)【出願日】2021-03-26
(62)【分割の表示】P 2016130476の分割
【原出願日】2016-06-30
【審査請求日】2021-04-26
(73)【特許権者】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(73)【特許権者】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】貝原 大祐
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開2008-176425(JP,A)
【文献】特開2011-141648(JP,A)
【文献】国際公開第2014/091837(WO,A1)
【文献】特開2009-070130(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/10
G06F 3/04845
G06T 19/20
G09G 5/00
G09G 5/36
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
第一の三次元モデルと、第二の三次元モデルとで差がある箇所を特定する特定手段と、
仮想空間上の、前記第一の三次元モデルと前記第二の三次元モデルとは独立した位置
であって、現実空間における移動可能なターゲットに対応する位置に、前記差がある箇所の三次元モデルである第三の三次元モデルを表示すべく制御する表示制御手段と、
を備えることを特徴とする
情報処理装置。
【請求項2】
前記表示制御手段は、
前記第三の三次元モデルを表示するとともに、
前記第一の三次元モデルと前記第二の三次元モデルとの少なくとも一方を表示すべく制御することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示制御手段は、
前記第一の三次元モデルと前記第二の三次元モデルとの少なくとも一方を表示した仮想空間上の前記独立した位置に前記第三の三次元モデルを表示すべく制御することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記表示制御手段は、
前記第一の三次元モデルと前記第二の三次元モデルの双方を表示した仮想空間上の前記独立した位置に前記第三の三次元モデルを表示すべく制御することを特徴とする請求項2に記載の情報処理装置。
【請求項5】
前記表示制御手段は、
前記第三の三次元モデルを表示するとともに、
前記特定手段で特定された前記差がある箇所を識別表示した前記第一の三次元モデルと、
前記特定手段で特定された前記差がある箇所を識別表示した前記第二の三次元モデルと、
の少なくとも一方を表示すべく制御することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記第一の三次元モデルおよび前記第二の三次元モデルは、複数の部品から構成される三次元モデルであって
前記特定手段は、前記第一の三次元モデルと前記第二の三次元モデルとで差がある部品を特定し、
前記表示制御手段は、仮想空間上において、前記第三の三次元モデルとして、前記特定手段により特定された前記差がある部品の三次元モデルを表示すべく制御することを特徴とする請求項1または2に記載の情報処理装置。
【請求項7】
前記差がある箇所とは、前記第一の三次元モデルと前記第二の三次元モデルとの間で設計変更がなされた箇所であることを特徴とする請求項1乃至6のいずれか1項に記載の
情報処理装置。
【請求項8】
前記差がある箇所とは、前記第一の三次元モデルと前記第二の三次元モデルの一方にのみ存在す
る部位であることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
前記差がある箇所とは、前記第一の三次元モデルと前記第二の三次元モデルとで位置姿勢が異なる部位であることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項10】
前記ターゲットに対応する位置は、ユーザが手に持つことが出来る現実物体の位置に連動することを特徴とする請求項1に記載の情報処理装置。
【請求項11】
前記ターゲットに対応する位置は、マーカーで示されることを特徴とする請求項10に記載の情報処理装置。
【請求項12】
情報処理装置の制御方法であって、
第一の三次元モデルと、第二の三次元モデルとで差がある箇所を特定する特定ステップと、
仮想空間上の、前記第一の三次元モデルと前記第二の三次元モデルとは独立した位置
であって、現実空間における移動可能なターゲットに対応する位置に、前記差がある箇所の三次元モデルである第三の三次元モデルを表示すべく制御する表示制御ステップと、
を含む情報処理装置の制御方法。
【請求項13】
コンピュータを、請求項1乃至1
1のいずれか1項に記載された情報処理装置の各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、設計変更された部品データが構成する三次元モデルを仮想空間上で操作することなく、当該部品データを仮想空間上で閲覧可能な仮想空間制御装置、その制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来、組立系製造業では業務のフロントローディングが行われている。フロントローディングは、後工程で発生する可能性のある問題を初期工程で検討することにより、品質向上を目指す取り組みである。例えば、設計部門で作成中のCADデータを三次元CADソフトウェアで表示し、組立部門や品質保証部門といった下流部門が部品の干渉チェックをシミュレーションしている。
【0003】
しかしながら、設計部門から取得するCADデータは未完成である。設計部門と下流部門とが協力して製品設計を進めていくため、設計部門と下流部門との間でCADデータのやり取りが何度も行われる。つまり、下流部門は設計部門が改善したCADデータを何度も取得し、その都度シミュレーション等を行う必要がある。
【0004】
その際に、設計部門から下流部門に対して設計変更の内容をきちんと伝えることが重要であるが、設計変更した箇所が多いと、設計変更箇所を伝え忘れてしまう可能性がある。そのため、下流部門は前回取得したCADデータから何がどのように変更されたのかを、設計変更前のCADデータと設計変更後のCADデータとを比較して、確認しなければならない。
【0005】
そこで特許文献1には、設計変更前のCADデータと設計変更後のCADデータとをそれぞれ一定形状の複数のエリアに分割し、そのエリアごとに体積を算出して設計変更前後で比較することにより、形状が変更された箇所を特定する仕組みが開示されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1の仕組みや三次元CADソフトウェアの従来機能により、設計変更された箇所を自動的に特定する仕組みが存在するため、下流部門の作業者は容易に設計変更された箇所を確認することができる。
【0008】
しかしながら、多数の部品から構成される組立品の場合、設計変更された箇所が組立品の内部に組み込まれていることがあるため、設計変更された箇所が判明したとしても、その箇所を三次元モデルとして確認することは手間がかかる。なぜなら、CADデータの三次元モデルを三次元CADソフトウェアで表示し、設計変更箇所だけが表示されるように設定しなければならないためである。
【0009】
また、三次元モデルを含む画像を、現実空間を撮像した画像に重畳し、これを観察者のヘッドマウントディスプレイに提示する複合現実感(Mixed Reality、以下、MRという。)や拡張現実感と呼ばれている仕組みが存在する。この仕組みを用いて、組立品の三次元モデルを表示し、組立品の内部にある設計変更箇所を確認しようとしても、仮想空間に存在する三次元モデルを操作して部品ごとに分解しなければならないので、観察者にとって非常に手間である。
【0010】
本発明の目的は、設計変更された部品データが構成する三次元モデルを仮想空間上で操作することなく、当該部品データを仮想空間上で閲覧可能な仕組みを提供することである。
【課題を解決するための手段】
【0011】
上記の目的を達成するために本発明の情報処理装置は、
第一の三次元モデルと、第二の三次元モデルとで差がある箇所を特定する特定手段と、
仮想空間上の、前記第一の三次元モデルと前記第二の三次元モデルとは独立した位置であって、現実空間における移動可能なターゲットに対応する位置に、前記差がある箇所の三次元モデルである第三の三次元モデルを表示すべく制御する表示制御手段と、
を備えることを特徴とする。
【発明の効果】
【0012】
本発明によれば、設計変更された部品データが構成する三次元モデルを仮想空間上で操作することなく、当該部品データを仮想空間上で閲覧可能となる。
【図面の簡単な説明】
【0013】
【
図1】本発明の実施形態における情報処理システムのシステム構成の一例を示す図である。
【
図2】情報処理装置101とHMD102のハードウェア構成の一例を示す図である。
【
図3】情報処理装置101の機能構成の一例を示す図である。
【
図4】全体的な処理の流れの一例を示すフローチャートである。
【
図5】差分特定処理の詳細な処理の流れの一例を示すフローチャートである。
【
図6】旧組立品データと新組立品データの参照構造と、比較表610のデータ構造の一例とを示す図である。
【
図7】差分リスト700のテーブル構成の一例を示す図である。
【
図8】操作画面800の画面構成の一例を示す図である。
【
図9A】差分データ配置処理の詳細な処理の流れの一例を示すフローチャートである。
【
図9B】
図9Aに続き、差分データ配置処理の詳細な処理の流れの一例を示すフローチャートである。
【
図10】ターゲットマーカにより操作画面800が操作されている様子を示す図である。
【
図11】形状が変更された選択差分データが表示された様子を示す図である。
【
図12】表示設定反映処理の詳細な処理の流れの一例を示すフローチャートである。
【
図13】設計変更前の選択差分データが表示された様子を示す図である。
【
図14】新たに追加された選択差分データが表示された様子を示す図である。
【
図15】位置または姿勢が変更された選択差分データが識別表示された様子を示す図である。
【
図16】削除された選択差分データが識別表示された様子を示す図である。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら、本発明の実施形態について説明する。
【0015】
図1は、本実施形態における情報処理システムのシステム構成の一例を示す図である。
図1に示す情報処理システムは、複合現実感技術(以下、MR技術という。)を用いた、ユーザに仮想空間を閲覧させるためのシステムである。情報処理システムは、情報処理装置101にHMD102が相互にデータ通信可能に接続されている。情報処理装置101とHMD102との接続は、有線接続であってもよいし、無線接続であってもよい。尚、
図1のシステム上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例がある。
【0016】
情報処理装置101(仮想空間制御装置)は、汎用的なコンピュータである。情報処理装置101は、HMD102で撮影(撮像)された現実空間の画像(以下、現実空間画像という。)と、情報処理装置101で生成された仮想空間の画像(以下、仮想空間画像という。)とを重畳する。こうして生成された画像(以下、複合現実画像という。)を、HMD102に送信する。尚、MR技術に関しては従来技術を用いるため、詳細な説明は省略する。また、情報処理装置101は、パーソナルコンピュータであってもよいし、サーバのような大型のコンピュータであってもよい。更には、携帯電話やタブレット端末といった携帯端末であってもよい。コンピュータの種類は特に問わない。
【0017】
HMD102は、ヘッドマウントディスプレイである。HMD102は、ユーザの頭部に装着する装置であり、右目用と左目用のビデオカメラと、右目用と左目用のディスプレイを備えている。HMD102は、HMD102のビデオカメラで撮影された現実空間画像を情報処理装置101に送信する。そして、情報処理装置101から複合現実画像を受信し、ディスプレイに表示する。HMD102では、右目用と左目用のディスプレイを設けているので、視差によって立体感を得ることができる。尚、HMD102で撮影する現実空間画像とHMD102で表示する複合現実画像は、動画(映像)が望ましいが、所定の間隔で撮影された静止画であってもよい。また、スマートフォンのようにディスプレイとビデオカメラがハードウェアの前面と背面に設置されている装置を、ヘッドマウントディスプレイの代用としてもよい。
【0018】
本実施形態では、情報処理装置101とHMD102とを含むシステムとして説明を行うが、情報処理装置101とHMD102とが一体化したデバイス(仮想空間制御装置)であってもよい。すなわち、HMD102に情報処理装置101の各種ハードウェアを搭載し、HMD102だけで動作するようにしてもよい。
【0019】
また、情報処理装置101には赤外線カメラ104が接続されている。赤外線カメラ104は、赤外線を用いた光学式のセンサである。赤外線カメラ104は、現実空間に赤外線を照射し、現実空間の物体で反射した赤外線を撮影することにより、赤外線カメラ104が定義する座標系における、現実空間の物体の位置及び姿勢を特定する。この赤外線カメラ104を用いて、現実空間におけるHMD102(すなわちユーザ)の位置及び姿勢(向きや傾き、視線の方向等。以下、同じ。)を特定する。HMD102には、オプティカルマーカ103という赤外線を反射する物体を備えており、赤外線カメラ104はこのオプティカルマーカ103で反射した赤外線を撮影することで、HMD102の位置及び姿勢を特定できるようになっている。ユーザがどのような位置や姿勢であっても、当該ユーザが装着するHMD102のオプティカルマーカ103を撮影または検知できるように、情報処理システムでは赤外線カメラ104を複数台設置することが望ましい。また、位置及び姿勢を特定可能なHMD102は、赤外線カメラ104の撮影範囲に存在するものとして説明を行う。
【0020】
尚、本実施形態においては、現実空間におけるHMD102の位置及び姿勢を特定するために、赤外線カメラ104を用いるが、これらの現実空間における位置及び姿勢を特定できるのであれば、これに限らない。例えば、磁気センサを用いてもよいし、HMD102が撮影した画像を解析して位置及び姿勢を特定してもよい。
【0021】
本実施形態においては、HMD102を装着したユーザは、ターゲットマーカ105を用いて各種操作を行う。ターゲットマーカ105は、二次元マーカから構成される。情報処理装置101はこの二次元マーカの傾きやHMD102との距離を画像認識により特定することにより、現実空間上のターゲットマーカ105が仮想空間上においてはどういった位置・姿勢であるのかを特定することができる。尚、二次元マーカの種類は特に問わないが、画像認識により二次元マーカの形状が取得しやすい種類である方が望ましい。
【0022】
図2は、情報処理装置101とHMD102の各ハードウェア構成の一例を示す図である。
【0023】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0024】
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムが記憶されている。更には、情報処理装置101の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
【0025】
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
【0026】
また、入力コントローラ(入力C)205は、キーボードやマウス等のポインティングデバイス(入力デバイス210)からの入力を制御する。
【0027】
情報処理装置101のビデオコントローラ(VC)206は、HMD102が備える右目・左目ディスプレイ222やディスプレイ212等の表示器への表示を制御する。右目・左目ディスプレイ222に対しては、例えば外部出力端子(例えば、Digital Visual Interface)を用いて出力される。また、右目・左目ディスプレイ222は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、ディスプレイ212は、液晶ディスプレイ等であり、右目・左目ディスプレイ222と同様の表示、または仮想空間を操作するためのGUI(Graphical User Interface)が表示される。
【0028】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部メモリ211(記憶手段)へのアクセスを制御する。外部メモリ211は、例えばハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等がある。
【0029】
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。特に、情報処理装置101の通信I/Fコントローラ208は、赤外線カメラ104との通信も制御する。
【0030】
情報処理装置101の汎用バス209は、情報処理装置101に接続されるHMD102の右目・左目ビデオカメラ221で撮影した画像を取り込むために使用される。右目・左目ビデオカメラ221からは、外部入力端子(例えば、IEEE1394端子)を用いて入力される。また、右目・左目ビデオカメラ221は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【0031】
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ上での表示を可能としている。また、CPU201は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0032】
本発明の情報処理装置101が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211に格納されている。
【0033】
図3は、情報処理装置101の機能構成を示す機能構成図である。尚、
図3の情報処理装置101の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【0034】
情報処理装置101は機能部として、通信制御部301、位置・姿勢特定部302、現実空間画像取得部303、仮想空間生成部304、三次元モデル制御部305、仮想空間画像取得部306、複合現実画像生成部307を備える。更に情報処理装置101は機能部として、表示制御部308、データ管理部309、変数制御部310、データ比較部311、画面生成部312、操作受付部313、距離算出部314を備える。
【0035】
通信制御部301は、情報処理装置101と通信可能なHMD102と赤外線カメラ104との各種情報の送受信を行う機能部である。通信制御部301は、前述したビデオコントローラ206、通信I/Fコントローラ208、汎用バス209等を通じてこれらの装置と情報の送受信を行う。
【0036】
位置・姿勢特定部302は、赤外線カメラ104から取得したHMD102の現実空間における位置及び姿勢(向き)を示す情報に基づいて、仮想空間における位置及び姿勢を特定するための機能部である。本実施形態では、HMD102にオプティカルマーカ103が装着されているため、現実空間におけるオプティカルマーカ103の位置及び姿勢をまず取得する。そして、現実空間の座標系(赤外線カメラ104の座標系)と仮想空間の座標系とはあらかじめキャリブレーション(位置合わせ)がなされているので、これに基づいて現実空間における位置及び姿勢に対応する仮想空間上の位置及び姿勢を特定する。尚、現実空間画像取得部303で右目・左目ビデオカメラ221から取得した右目用の現実空間画像と左目用の現実空間画像とを用いて、三角測量等の方法により、現実空間の物体の位置及び姿勢を特定してもよい。
【0037】
また、位置・姿勢特定部302は、現実空間画像取得部303が取得した現実空間画像を解析して、現実空間画像に写る二次元マーカの位置や形状を特定し、現実空間におけるターゲットマーカの位置及び姿勢を特定することも可能である。また、位置・姿勢特定部302は、この現実空間画像におけるターゲットマーカの位置及び姿勢から、仮想空間における位置及び姿勢も特定する。
【0038】
現実空間画像取得部303は、HMD102の右目・左目ビデオカメラ221で撮影された現実空間画像を取得する機能部である。
【0039】
仮想空間生成部304は、情報処理装置101の外部メモリ211に記憶されている情報に基づいて仮想空間を生成する機能部である。仮想空間は情報処理装置101の内部に生成される仮想的な空間であるので、その空間の形や大きさに関する情報が外部メモリ211に記憶されており、これに基づいて仮想空間を生成する。仮想空間には三次元モデルを配置可能である。三次元モデルは三次元モデル制御部305によって配置される。
【0040】
三次元モデル制御部305は、三次元モデルを仮想空間に配置するための機能部である。仮想空間が生成された場合には、あらかじめ定義された位置及び姿勢で仮想空間上に三次元モデルを配置する。必要に応じて、配置された三次元モデルを異なる位置及び姿勢で再配置(移動)する。また、三次元モデル制御部305は、位置・姿勢特定部302で特定した、仮想空間におけるターゲットマーカの位置及び姿勢に基づいて、三次元モデルを仮想空間上に配置することができる。すなわち、複合現実画像を生成したときに、ターゲットマーカ105に重畳させるようにして三次元モデルを配置させることが可能である。更には、三次元モデル制御部305は、仮想空間に配置した三次元モデルの表示形態を変更することができる。例えば、三次元モデルの色を変更したり、形状を変更したりすることができる。
【0041】
仮想空間画像取得部306は、仮想空間生成部304で生成した仮想空間の画像を取得する機能部である。仮想空間画像取得部306が仮想空間の画像を取得する場合には、位置・姿勢特定部302で特定した仮想空間におけるHMD102の位置及び姿勢に基づいて仮想空間上に視点を設定する。そして、当該視点から見た場合の仮想空間画像を生成し、これを取得する。この視点に仮想的なカメラを設置し、仮想空間を撮像するようにすればよい。すなわちレンダリングするということである
【0042】
複合現実画像生成部307は、現実空間画像取得部303で取得した現実空間画像に仮想空間画像取得部306で取得した仮想空間画像を重畳することにより、複合現実画像を生成する機能部である。
【0043】
表示制御部308は、情報処理装置101に接続されたHMD102の右目・左目ディスプレイ222や情報処理装置101に接続されたディスプレイ212における各種情報の表示制御を行う機能部である。特に、複合現実画像生成部307で生成された複合現実画像をHMD102の右目・左目ディスプレイ222に表示させる機能を有する。
【0044】
データ管理部309は、情報処理装置101のRAM203や外部メモリ211等の記憶部に記憶されるデータを管理するための機能部である。必要に応じて、データの追加・更新・削除等を行う。
【0045】
変数制御部310は、情報処理装置101が実行するプログラムで利用する変数の制御を行うための機能部である。変数の宣言や代入等の処理を実行する。
【0046】
データ比較部311は、外部メモリ211等に記憶された複数の三次元モデルを比較し、その差分を特定するための機能部である。三次元モデルは、自身のポリゴン数や位置・姿勢の情報を有しているので、この情報を用いて比較することにより差分があるか否かを特定する。また、従来技術の通り、体積や面積による比較や画像処理による比較であってもよい。
【0047】
画面生成部312は、仮想空間上に表示する操作画面を生成するための機能部である。本実施形態においては、操作画面を仮想空間上に表示するため、生成される画面は三次元モデルである。
【0048】
操作受付部313は、画面生成部312によって生成された操作画面に対する選択操作を受け付けるための機能部である。仮想空間上に表示された操作画面に対する操作は、ターゲットマーカ105を用いて行う。ターゲットマーカ105の仮想空間における位置及び姿勢が位置・姿勢特定部302によって特定されるので、この位置及び姿勢に基づいて、ターゲットマーカ105の上部にカーソルオブジェクトを配置する。このカーソルオブジェクトと操作画面上のボタンとが一定時間接触した場合に、ボタンが押下(選択)されたと判断する。操作画面に対する操作方法はこれに限らず、HMD102を装着するユーザの指によって操作されてもよいし、情報処理装置101のディスプレイ212に操作画面を表示して入力デバイス210によって操作を受け付けてもよい。
【0049】
距離算出部314は、仮想空間上の二点間の距離を算出するための機能部である。三平方の定理等を用いて、仮想空間上の座標系における二点間の距離を算出する。
【0050】
次に、本発明の実施形態における全体的な処理の流れの一例について、
図4に示すフローチャートを用いて説明する。以下説明する、S401乃至S412の各ステップは、情報処理装置101のCPU201が各機能部を動作することにより実行される処理である。
【0051】
ステップS401では、情報処理装置101は、設計変更前の組立品と設計変更後の組立品との差分を特定するための処理を実行する。
図5に差分特定処理の詳細な処理の流れを示す。
【0052】
図5は、差分特定処理の詳細な処理の流れの一例を示すフローチャートである。以下説明する、S501乃至S509の各ステップは、情報処理装置101のCPU201が各機能部を動作することにより実行される処理である。
【0053】
ステップS501では、情報処理装置101のデータ管理部309は、外部メモリ211に記憶されている設計変更前の組立品データ(以下、旧組立品データという。)と、設計変更後の組立品データ(以下、新組立品データという。)とを取得する(取得手段)。すなわち、設計変更前の第一の三次元モデルと、設計変更後の第二の三次元モデルとを取得するということである。ユーザはあらかじめこれらのデータを外部メモリ211に記憶しておく。そして、データ管理部309は、ユーザから指定された旧組立品データと新組立品データとを取得する。本実施形態において組立品データとは、CADデータのうちのアセンブリデータである。
【0054】
図6(a)では、旧組立品データと新組立品データ(以下、これらを新旧組立品データという。)の参照構造の一例を、それぞれ601と602に示す。新旧組立品データはトップアセンブリであるので、複数の部品やサブアセンブリから構成されている。例えば、旧組立品データAは、部品データBと部品データCとアセンブリデータDから構成されており、更にサブアセンブリであるアセンブリデータDは、部品データE・F・Gから構成されている。以下、アセンブリデータの参照先の部品やサブアセンブリを参照先データと称する。
【0055】
ステップS502では、情報処理装置101のデータ管理部309は、ステップS501で取得した新旧組立品データの参照先である参照先データに関する情報を取得し、
図6(b)に示すような比較表610を作成する。比較表610は、旧参照先データ名611と新参照先データ名612を備えており、それぞれ比較元と比較先の参照先データの名称を示している。旧組立品データの参照先データに対応する新組立品データの参照先データがあれば同じ行に並べて格納し、どちらか一方にしかない参照先データの場合には、当該参照先データが存在しない組立品データの項目は空欄にする。このようにして、
図6(a)に示す旧組立品データAと新組立品データAの比較表610を作成した結果が
図6(b)である。
【0056】
ステップS503では、情報処理装置101のデータ管理部309は、
図7に示すような差分リスト700を生成する。ステップS503の処理では、空の状態の差分リスト700を生成する。
【0057】
図7の差分リスト700は、設計変更前後でどのような差分があるのかを示すためのデータテーブルである。差分リスト700は、差分データ名701、追加フラグ702、形状変更フラグ703、位置姿勢変更フラグ704、削除フラグ705を備える。データテーブルのテーブル構成はこれに限らない。
【0058】
差分データ名701は、設計変更前後で差分のあった参照先データの名称が格納される項目である。本実施形態でいう差分とは、設計変更前後の相違点のことをいう。例えば、旧組立品データに対する新たな参照先データの追加、参照先データの形状変更、参照先データの位置または姿勢の変更、旧組立品データからの参照先データの削除を指す。追加フラグ702、形状変更フラグ703、位置姿勢変更フラグ704、削除フラグ705は、これらの差分があった場合にフラグが立てられる項目である。
【0059】
図5の説明に戻る。ステップS504では、情報処理装置101の変数制御部310は、カウンタの変数iを宣言し、初期値として0を代入する。そして、ステップS505では、情報処理装置101の変数制御部310は、変数iをインクリメントする。
【0060】
ステップS506では、情報処理装置101のデータ管理部309は、比較表610のレコードのうち、i行目のレコード参照先データを外部メモリ211等から取得し、これを参照する。ここで取得するのは、旧参照先データ名611が示す、旧組立品データを構成する参照先データと、新参照先データ名612が示す、新組立品データを構成する参照先データである。旧参照先データ名611と新参照先データ名612のいずれかが空欄の場合には、名称が入力されている参照先データのみ取得する。
【0061】
ステップS507では、情報処理装置101のデータ比較部311は、ステップS506で取得した、旧組立品データを構成する参照先データと、新組立品データを構成する参照先データとを比較する。ここでいう比較は、新たに参照先データが追加されたか、参照先データの形状が変更されたか、参照先データの位置または姿勢が変更されたか、参照先データが削除されたか等を、ステップS506で取得した参照先データ同士を比較することで特定する(特定手段)。
【0062】
例えば、旧組立品データには存在しないが、新組立品データに存在する参照先データの場合(ステップS506で旧組立品データを構成する参照先データが取得できなかった場合)には、新たに追加された参照先データであると特定する。ステップS506で取得した旧組立品データの参照先データが有するポリゴン数と新組立品データの参照先データが有するポリゴン数とが一致しない場合には、形状変更がなされた参照先データであると特定する。一致不一致の判定はポリゴン数に限らず、体積や面積といった別の要素を用いた比較によってもよい。また、旧組立品データの参照先データの親であるアセンブリデータと新組立品データの参照先データの親であるアセンブリデータとが示すそれぞれの位置または姿勢を示す情報が一致しない場合、位置または姿勢が変更された参照先データであると特定する。旧組立品データには存在するが新組立品データには存在しない参照先データの場合(ステップS506で新組立品データを構成する参照先データが取得できなかった場合)には、削除された参照先データであると特定する。このいずれにも該当しないのであれば、取得した参照先データについては設計変更がなかったと特定する。
【0063】
このように比較した結果、ステップS506で参照した、新旧組立品データにおける参照先データに設計変更があったか、すなわち差分があるか否かを判定する。差分がある(追加、形状変更、位置または姿勢変更、削除があった)と判定した場合には、ステップS508に処理を進める。差分がないと判定した場合には、ステップS509に処理を進める。
【0064】
ステップS508では、情報処理装置101のデータ管理部309は、ステップS503で生成された差分リスト700に新たなレコードを追加し、ステップS506で参照した参照先データの名称を差分データ名701に追加する。そして、その差分内容に対応するフラグに“1”を格納する。つまりフラグを立てる。それ以外のフラグには“0”を格納する。このようにすることで、設計変更のあった参照先データに関する情報を差分リスト700に追加していく。すべての参照先データに対してステップS508を実行した結果が、
図7に示す差分リスト700である。以下、設計変更のあった参照先データのことを、差分データと称する。
【0065】
ステップS509では、情報処理装置101のデータ管理部309は、比較表610のi行目が最終行(最終レコード)であるか否かを判定する。最終行であると判定した場合には、差分特定処理を終了し、ステップS401の次のステップに処理を進める。最終行でないと判定した場合には、ステップS505に処理を戻す。
【0066】
このようにして、旧組立品データを構成する複数の参照先データと、新組立品データを構成する複数の参照先データとを比較し、設計変更がなされた参照先データとその変更内容を特定する。
【0067】
図4に説明を戻す。ステップS401が完了すると、ステップS402では、情報処理装置101の仮想空間生成部304は、外部メモリ211に記憶された仮想空間情報を取得する。仮想空間情報とは、仮想空間を生成するための各種情報のことである。具体的には、仮想空間の形やその大きさ、また配置する三次元モデルやその配置場所といった、仮想空間を形作るために必要な情報である。そして、仮想空間生成部304は、取得した仮想空間情報を用いて、仮想空間を生成する。生成される仮想空間は、仮想空間情報が示す形や大きさの仮想空間であり、更には仮想空間情報が示す三次元モデルが仮想空間上に配置される。本実施形態では、仮想空間生成部304は、ステップS501で取得した旧組立品データと新組立品データとを仮想空間上に配置する。新旧組立品データは、前述した通りアセンブリデータであるので、参照先データを三次元モデルとして表示し、当該アセンブリデータに定義された位置や姿勢で配置する。これにより新旧組立品データを示す三次元モデルが仮想空間上に配置される。
【0068】
ステップS403では、情報処理装置101の現実空間画像取得部303は、HMD102の右目・左目ビデオカメラ221から現実空間画像を取得し、これらをRAM203に記憶する。
【0069】
ステップS404では、情報処理装置101の位置・姿勢特定部302は、HMD102の現実空間における位置及び姿勢を示す情報を取得する。前述した通り、HMD102が備えるオプティカルマーカ103を赤外線カメラ104が検知することで特定した位置及び姿勢を示す情報を、赤外線カメラ104から取得する。そして、位置・姿勢特定部302は、取得した位置及び姿勢を示す情報から仮想空間における位置及び姿勢を特定する。特定した位置及び姿勢は、HMD位置・姿勢情報としてRAM203に記憶する。この情報は現在のフレームにおけるHMD102の位置及び姿勢であるので、フレームが切り替わるごとにこの情報が更新される。
【0070】
ステップS405では、情報処理装置101の位置・姿勢特定部302は、ターゲットマーカ105の現実空間における位置及び姿勢を示す情報を特定する(位置特定手段)。具体的には、前述した通り、ターゲットマーカ105をHMD102が撮影した現実空間画像から検出する。そして、その現実空間画像に写るターゲットマーカ105の形状や右目・左目ビデオカメラ221で取得した2枚の現実空間画像から特定される視差によって、ターゲットマーカ105の現実空間における位置及び姿勢を推定する。そして、この現実空間における位置及び姿勢から仮想空間における位置及び姿勢を特定する。換言すれば、現実空間においてHMD102を装着するユーザから指定された位置に対応する仮想空間上の位置を特定するということである。特定した位置及び姿勢は、ターゲットマーカ位置・姿勢情報としてRAM203に記憶する。この情報は現在のフレームにおけるHMD102の位置及び姿勢であるので、フレームが切り替わるごとにこの情報が更新される。
【0071】
ステップS406では、情報処理装置101の画面生成部312は、ステップS508で参照先データが追加された差分リスト700を取得し、差分データ名701の一覧を含む操作画面を生成する。操作画面の一例を
図8に示す。
【0072】
操作画面800は、表示設定としてターゲットボタン801と表示階層ボタン802と表示対象ボタン803とを備えている。ターゲットボタン801は、ターゲットマーカ105に差分データとして部品データを重畳表示させるのか、当該部品データを含むアセンブリデータを重畳表示させるのかを選択するためのボタンである。表示階層ボタン802は、ターゲットボタン801でアセンブリデータを重畳表示すると選択された場合に、いくつ上の階層のアセンブリデータを重畳表示させるのかを選択するためのボタンである。例えば、“1”が選択されると差分データの親であるアセンブリデータ、“2”が選択されると差分データの親の親であるアセンブリデータがターゲットマーカ105に重畳表示されることになる。表示対象ボタン803は、旧組立品データにおける差分データをターゲットマーカ105に重畳表示させるのか、新組立品データにおける差分データをターゲットマーカ105に重畳表示させるのかを選択するためのボタンである。
【0073】
また、操作画面800は差分データリスト804を備えている。差分データリスト804は、差分リスト700の差分データ名701に示す差分データの名称が一覧表示される領域である。それぞれ差分データの名称がボタン形式で表示される。選択されたボタンに対応する差分データが、表示設定に従ってターゲットマーカ105に重畳表示される。
【0074】
この操作画面800は、ステップS402で生成された仮想空間上に配置されるので、三次元モデルとして生成する。具体的には、画面生成部312は操作画面800を表す画像データを生成し、三次元モデル制御部305が生成する三次元モデルの面にテクスチャとして貼り付けることで、仮想空間上に配置する操作画面800の三次元モデルを生成する。操作画面800を配置する位置は、あらかじめ決められた位置であってもよいし、仮想空間に設定されるHMD102の視点から所定距離・方向だけ離れた位置に設置し、視点に追従して配置位置を移動するようにしてもよい。
【0075】
ステップS407では、情報処理装置101は、ユーザから指定された差分データを仮想空間上に配置するための処理を実行する。
図9A及び
図9Bに差分データ配置処理の詳細な処理の流れを示す。
【0076】
図9A及び
図9Bは、差分データ配置処理の詳細な処理の流れの一例を示すフローチャートである。以下説明する、S901乃至S917の各ステップは、情報処理装置101のCPU201が各機能部を動作することにより実行される処理である。
【0077】
ステップS901では、情報処理装置101の操作受付部313は、仮想空間に配置された操作画面800に対する操作内容を特定する。本実施形態においては、操作画面800に対する操作はターゲットマーカ105を用いて行われる。ターゲットマーカ105が指し示す方向にカーソルオブジェクトが重畳表示され、このカーソルオブジェクトと操作画面800上のボタンとが一定時間接触した場合に、当該ボタンが押下されたと判定する。
【0078】
図10は、ターゲットマーカ105により操作画面800が操作されている様子を示す図である。仮想空間には、ステップS501で取得した旧組立品データ1001と新組立品データ1002と、ステップS406で生成された操作画面800とが配置されている。このような仮想空間を示す仮想空間画像が、後述する処理において現実空間画像に重畳されてHMD102に表示されている。更に、仮想空間生成部304は、ターゲットマーカ105の仮想空間における位置及び姿勢に基づいて、ターゲットマーカ105が指し示す方向に対して、カーソルオブジェクト1003を仮想空間に配置する。このカーソルオブジェクト1003は、HMD102を装着するユーザが現実空間でターゲットマーカ105を移動させても、カーソルオブジェクト1003がターゲットマーカ105の指し示す方向に追従する。そして、ユーザは、差分データリスト804に表示された差分データのうち、ターゲットマーカ105に重畳表示させたい場合には、このターゲットマーカ105のカーソルオブジェクト1003を、表示したい差分データの名称に対して一定時間接触させる。これにより、ボタン押下が行われる。
【0079】
ステップS902では、情報処理装置101の操作受付部313は、ステップS901で特定された操作内容が、現在、仮想空間上に配置している差分データとは異なる差分データに対応するボタンが選択されたか否かを判定する。例えば、現在仮想空間上に配置されている差分データが“部品データB”であり、新たに選択された差分データが“部品データC”である場合や、仮想空間上にどの差分データも配置されていない状態で、差分データに対応するボタンが押下された場合である。このような場合には、ステップS903に処理を進める。そうでない場合には、差分データ配置処理を終了し、ステップS407の次のステップに処理を進める。
【0080】
ステップS903では、情報処理装置101のデータ管理部309は、カーソルオブジェクト1003によって押下されたボタンに対応する差分データの各種フラグ(追加フラグ702~削除フラグ705)を参照する。以下、カーソルオブジェクト1003によって押下されたボタンに対応する差分データを、選択差分データと称する。
【0081】
ステップS904では、情報処理装置101のデータ管理部309は、選択差分データの追加フラグ702が“1”であるか否か、すなわち追加フラグ702が立っているか否かを判定する。選択差分データの追加フラグ702が“1”であると判定した場合には、ステップS905に処理を進める。選択差分データの追加フラグ702が“0”であると判定した場合には、ステップS908に処理を進める。
【0082】
ステップS905では、情報処理装置101のデータ管理部309は、新組立品データを構成する選択差分データを外部メモリ211から取得する。すなわち、旧組立品データに対して新たに追加された選択差分データを外部メモリ211から取得するということである。
【0083】
ステップS906では、情報処理装置101の三次元モデル制御部305は、仮想空間に配置されている新組立品データのうち、選択差分データの部分に対して色づけを行う。換言すれば、仮想空間に配置されている新組立品データにおいて選択差分データが識別可能な表示形態となるように設定を行う。そのため、表示形態としては色づけに限らず、選択差分データを点滅させたり、矢印等で識別表示したりしてもよい。
【0084】
ステップS907では、情報処理装置101の画面生成部312は、操作画面800の表示対象ボタン803を選択できない状態の画面として生成しなおし、仮想空間に再配置する。新たに追加された差分データであるということは、設計変更前は存在しなかったということなので、表示対象ボタン803で“OLD”が選択されたとしても表示するものがない。よって、表示対象ボタン803が押下できないようにしている。ステップS907が完了したらステップS911に処理を進める。
【0085】
一方、ステップS908では、情報処理装置101のデータ管理部309は、選択差分データの形状変更フラグ703が“1”であるか否か、すなわち形状変更フラグ703が立っているか否かを判定する。選択差分データの形状変更フラグ703が“1”であると判定した場合には、ステップS909に処理を進める。選択差分データの形状変更フラグ703が“0”であると判定した場合には、
図9BのステップS913に処理を進める。
【0086】
ステップS909では、情報処理装置101のデータ管理部309は、新組立品データを構成する選択差分データを外部メモリ211から取得する。すなわち、形状変更後の選択差分データを外部メモリ211から取得するということである。新たに追加された差分データとは異なり、設計変更前の選択差分データも存在するが、ユーザは設計変更された形状について確認をしたいため、設計変更後の選択差分データを取得している。尚、どちらの選択差分データを最初に表示するのかが設定できてもよい。すなわち、設計変更前の選択差分データを初期表示する設定だった場合には、ステップS909は設計変更前の選択差分データを取得する。
【0087】
ステップS910では、情報処理装置101の三次元モデル制御部305は、仮想空間に配置されている新旧組立品データのうち、選択差分データの部分に対して色づけを行う(表示形態変更手段)。換言すれば、仮想空間に配置されている新旧組立品データにおいて選択差分データが識別可能な表示形態となるように設定を行う。そのため、表示形態としては色づけに限らず、選択差分データを点滅させたり、矢印等で識別表示したりしてもよい。ステップS910は、ステップS907とは異なり、旧組立品データにおいても選択差分データの表示形態を変更する。
【0088】
ステップS911では、情報処理装置101の距離算出部314は、ユーザの仮想空間における位置から、仮想空間に配置されている新組立品データの三次元モデルに含まれる選択差分データの三次元モデルの位置までの距離を算出する(距離取得手段)。選択差分データの位置は、選択差分データを示す三次元モデルの中心点の位置とするが、これに限らない。そして、算出された距離が所定距離以上(または所定距離より大きい)であるか否かを判定する。すなわち、算出された距離が所定の条件を満たすか否かを判定するということである。仮想空間に配置された新組立品データの三次元モデルの近くにユーザが存在するのであれば、ユーザは新組立品データに含まれる選択差分データの三次元モデルを直接確認すればよい。しかし、仮想空間に配置された新組立品データの三次元モデルから離れた位置にユーザが存在するのであれば、ユーザは新組立品データに近寄って確認しなければならない。よって、こうした場合にはターゲットマーカ105に選択差分データを重畳表示させることで、近寄る手間を軽減できる。そのため、ステップS911ではこれらの距離に関する判定を行っている。所定距離以上離れていると判定した場合には、ステップS912に処理を進める。そうでない場合には、差分データ配置処理を終了し、ステップS407の次のステップに処理を進める。
【0089】
尚、本実施形態ではステップS911を必ず実行する形態としているが、設定によりこれを実行しない形態であってもよい。すなわち、ステップS911で算出した距離に関わらず、取得した選択差分データの三次元モデルをターゲットマーカ105に重畳表示する形態であってもよい。
【0090】
ステップS912では、情報処理装置101の仮想空間生成部304は、ステップS405で特定したターゲットマーカ105の仮想空間における位置及び姿勢で、S905またはS909で取得した選択差分データの三次元モデルを配置する(配置手段)。こうすることで、現実空間画像に仮想空間画像を重畳した際に、ターゲットマーカ105の位置に選択差分データの三次元モデルが重畳されることになる。つまり、HMD102を装着するユーザは、あたかも現実空間のターゲットマーカ105に選択差分データの三次元モデルが貼り付いているかのように見える。ステップS912の処理が完了したら、差分データ配置処理を終了し、ステップS407の次のステップに処理を進める。
【0091】
図11は、形状変更がなされた選択差分データがターゲットマーカ105に表示された様子を示す図である。
図10に示すように、表示対象の差分データとして“部品データB”が選択されると、この“部品データB”の変更内容を示すフラグを確認する。すると、
図7に示す通り、“部品データB”は形状変更フラグ703にフラグが立っているので、形状変更がなされた選択差分データであることがわかる。よって、ステップS909で設計変更後の選択差分データを外部メモリ211から取得し、この取得した選択差分データの三次元モデルをターゲットマーカ105の位置及び姿勢で仮想空間上に配置する。また、新旧組立品データの三次元モデルにおいて、選択差分データの三次元モデルの表示形態を変更し、選択差分データを他の参照先データとは識別可能にする。
【0092】
そして、この仮想空間を示す仮想空間画像を生成して、現実空間画像に重畳した結果が
図11である。
図11に示す通り、ターゲットマーカ105の位置に設計変更後の選択差分データの三次元モデル(
図11では、車のホイール)が重畳表示される。また、新旧組立品データの三次元モデルも表示されており、このうち選択差分データに対応する箇所が識別表示される。
図11では、設計変更前の選択差分データが1101であり、設計変更後の選択差分データが1102である。いずれも新旧組立品データの三次元モデルを構成している選択差分データの三次元モデルである。このように新旧組立品データに組み込まれた状態の選択差分データとは別に、ユーザが有するターゲットマーカ105に選択差分データの三次元モデルを表示することで、設計変更がなされた選択差分データを手軽に確認することができる。
【0093】
図9Bに説明を移す。ステップS913では、情報処理装置101の画面生成部312は、操作画面800のターゲットボタン801と表示階層ボタン802と表示対象ボタン803とを選択できない状態の画面として生成しなおし、仮想空間に再配置する。後述する位置または姿勢が変更された選択差分データと削除された選択差分データについては、設計変更後の状態を手元のターゲットマーカ105において確認する必要性があまりない。そのため後述する処理において、これらの選択差分データの三次元モデルはターゲットマーカ105に重畳させないので、操作画面800の各種ボタンも選択できないように制御する。
【0094】
ステップS914では、情報処理装置101のデータ管理部309は、選択差分データの位置姿勢変更フラグ704が“1”であるか否か、すなわち位置姿勢変更フラグ704が立っているか否かを判定する。選択差分データの位置姿勢変更フラグ704が“1”であると判定した場合には、ステップS915に処理を進める。選択差分データの位置姿勢変更フラグ704が“0”であると判定した場合には、ステップS916に処理を進める。
【0095】
ステップS915では、情報処理装置101の三次元モデル制御部305は、仮想空間に配置されている新旧組立品データのうち、選択差分データの部分に対して色づけを行う。換言すれば、仮想空間に配置されている新旧組立品データにおいて選択差分データが識別可能な表示形態となるように設定を行う。そのため、表示形態としては色づけに限らず、選択差分データを点滅させたり、矢印等で識別表示したりしてもよい。そして、ターゲットマーカ105に、位置または姿勢が変更された選択差分データの三次元モデルを重畳表示するための処理を行わずに差分データ配置処理を終了し、ステップS407の次のステップに処理を進める。
【0096】
一方、ステップS916では、情報処理装置101のデータ管理部309は、選択差分データの削除フラグ705が“1”であるか否か、すなわち削除フラグ705が立っているか否かを判定する。選択差分データの削除フラグ705が“1”であると判定した場合には、ステップS917に処理を進める。選択差分データの削除フラグ705が“0”であると判定した場合には、差分データ配置処理を終了し、ステップS407の次のステップに処理を進める。
【0097】
ステップS917では、情報処理装置101の三次元モデル制御部305は、仮想空間に配置されている旧組立品データのうち、選択差分データの部分に対して色づけを行う。換言すれば、仮想空間に配置されている旧組立品データにおいて選択差分データが識別可能な表示形態となるように設定を行う。そのため、表示形態としては色づけに限らず、選択差分データを点滅させたり、矢印等で識別表示したりしてもよい。そして、ターゲットマーカ105に、削除された選択差分データの三次元モデルを重畳表示するための処理を行わずに差分データ配置処理を終了し、ステップS407の次のステップに処理を進める。
【0098】
尚、本実施形態においては、位置または姿勢が変更された選択差分データの三次元モデルはターゲットマーカ105に重畳表示させていないが、これらも重畳表示させてもよい。
【0099】
図4に説明を戻す。ステップS407の処理が完了すると、ステップS408では、情報処理装置101は、操作画面800における表示設定の内容を反映するための処理を実行する。
図12に表示設定反映処理の詳細な処理の流れを示す。
【0100】
図12は、表示設定反映処理の詳細な処理の流れの一例を示すフローチャートである。以下説明する、S1201乃至S1213の各ステップは、情報処理装置101のCPU201が各機能部を動作することにより実行される処理である。
【0101】
ステップS1201では、情報処理装置101の操作受付部313は、仮想空間に配置された操作画面800に対する操作内容を特定する。特定方法は、ステップS901と同様である。
【0102】
ステップS1202では、情報処理装置101の操作受付部313は、表示階層ボタン802に対する押下を受け付けたか否かを判定する。表示階層ボタン802に対する押下を受け付けたと判定した場合には、ステップS1203に処理を進める。そうでない場合には、ステップS1204に処理を進める。
【0103】
ステップS1203では、情報処理装置101のデータ管理部309は、表示階層ボタン802に対する押下に応じて決定される、表示階層に関する情報をRAM203に保存する。表示階層ボタン802は、左右の矢印が押下されることで、表示階層の増減を行うことができる。この情報を用いて、どの階層のアセンブリデータまでを表示すればよいのか決定する。ステップS1203の処理が完了したら、ステップS1209に処理を進める。
【0104】
ステップS1204では、情報処理装置101の操作受付部313は、表示対象ボタン803に対する押下を受け付けたか否かを判定する。表示対象ボタン803に対する押下を受け付けたと判定した場合には、ステップS1205に処理を進める。そうでない場合には、ステップS1208に処理を進める。
【0105】
ステップS1205では、情報処理装置101の操作受付部313は、表示対象ボタン803のうち、“NEW”のボタンが押下されたのか、“OLD”のボタンが押下されたのかを判定する。“NEW”のボタンが押下されたと判定した場合には、ステップS1206に処理を進める。“OLD”のボタンが押下されたと判定した場合には、ステップS1207に処理を進める。
【0106】
ステップS1206では、情報処理装置101のデータ管理部309は、新組立品データを構成する選択差分データを外部メモリ211から取得する。一方、ステップS1207では、情報処理装置101のデータ管理部309は、旧組立品データを構成する選択差分データを外部メモリ211から取得する。本実施形態では、形状変更が行われた選択差分データ以外は、表示対象ボタン803の操作が行えないように制御しているが、この制御を行わない場合には、選択差分データが存在しないために取得できない。そのため、取得できなかった場合には、表示設定反映処理を終了する形態であってもよい。
【0107】
ステップS1208では、情報処理装置101の操作受付部313は、ターゲットボタン801に対する押下を受け付けたか否かを判定する。ターゲットボタン801に対する押下を受け付けたと判定した場合には、ステップS1209に処理を進める。そうでない場合には、表示設定反映処理を終了し、ステップS408の次のステップに処理を進める。
【0108】
ステップS1209では、情報処理装置101の距離算出部314は、HMD102を装着するユーザの仮想空間における位置から、仮想空間に配置されている組立品データの三次元モデルに含まれる選択差分データの三次元モデルの位置までの距離を算出する。ここでいう選択差分データとは、ターゲットマーカ105に重畳表示する選択差分データに対応する、仮想空間上の組立品データ内の選択差分データである。例えば、新たに表示対象ボタン803で“OLD”が選択された場合には、旧組立品データの三次元モデルに含まれる、取得した設計変更前の選択差分データの三次元モデルの位置が基準となる。距離の算出は前述した通りである。そして、算出された距離が所定距離以上(または所定距離より大きい)であるか否かを判定する。所定距離以上離れていると判定した場合には、ステップS1210に処理を進める。そうでない場合には、表示設定反映処理を終了し、ステップS408の次のステップに処理を進める。
【0109】
尚、本実施形態ではステップS1209を必ず実行する形態としているが、設定によりこれを実行しない形態であってもよい。すなわち、ステップS1209で算出した距離に関わらず、取得した選択差分データの三次元モデルをターゲットマーカ105に重畳表示する形態であってもよい。
【0110】
ステップS1210では、情報処理装置101の操作受付部313は、ターゲットボタン801のうち、“アセンブリ”のボタンが押下されたのか、“部品”のボタンが押下されたのかを判定する。“アセンブリ”のボタンが押下されたと判定した場合には、ステップS1211に処理を進める。“部品”のボタンが押下されたと判定した場合には、ステップS1213に処理を進める。
【0111】
ステップS1211では、情報処理装置101のデータ管理部309は、ステップS1203で保存された階層の情報を取得し、ターゲットマーカ105に重畳する選択差分データから当該情報が示す階層の分だけ遡ったアセンブリデータを特定する。例えば、
図6(a)の参照構造で説明する。ターゲットマーカ105に重畳する選択差分データが“部品データE”で、階層の情報が“1”である場合には、“部品データE”の1階層上のアセンブリデータが特定されるので、この場合は、“アセンブリデータD”が特定されることになる。
【0112】
ステップS1212では、情報処理装置101の仮想空間生成部304は、ステップS405で特定したターゲットマーカ105の仮想空間における位置及び姿勢で、ステップS1211で取得したアセンブリデータの三次元モデルを配置する。すなわち、当該アセンブリデータを構成する参照先データを取得し、この参照先データの三次元モデルを当該アセンブリデータに設定された位置及び姿勢で配置して、アセンブリの三次元モデルを生成する。そして、この三次元モデルをターゲットマーカ105の位置及び姿勢で配置すればよい。
【0113】
一方、ステップS1213では、情報処理装置101の仮想空間生成部304は、ステップS405で特定したターゲットマーカ105の仮想空間における位置及び姿勢で、ターゲットマーカ105に重畳表示する選択差分データの三次元モデルを配置する。
【0114】
こうすることで、現実空間画像に仮想空間画像を重畳した際に、ターゲットマーカ105の位置に選択差分データまたはその親であるアセンブリの三次元モデルが重畳されることになる。ステップS1212またはS1213の処理が完了したら、表示設定反映処理を終了し、ステップS408の次のステップに処理を進める。
【0115】
図4に説明を戻す。ステップS409では、情報処理装置101の仮想空間画像取得部306は、仮想空間上に設定された視点から仮想空間を撮像することにより仮想空間画像を取得し、これをRAM203等に記憶する(仮想空間画像生成手段)。尚、HMD102の右目・左目ディスプレイ222のそれぞれに表示するために右目用の仮想空間画像と左目用の仮想空間画像の2枚を取得する。
【0116】
ステップS410では、情報処理装置101の複合現実画像生成部307は、ステップS403で取得した現実空間画像とステップS409で取得した仮想空間画像とをRAM203等から読み出す。そして、当該現実空間画像に当該仮想空間画像を重畳し、複合現実画像を生成する。生成した複合現実画像はRAM203等に記憶する。尚、前述した通り、現実空間画像と仮想空間画像とは右目用と左目用の2枚ずつがRAM203等に記憶されているので、右目用の現実空間画像に右目用の仮想空間画像を重畳し、左目用の現実空間画像に左目用の仮想空間画像を重畳する。
【0117】
ステップS411では、情報処理装置101の表示制御部308は、ステップS410で生成した複合現実画像をRAM203等から読み出し、ビデオコントローラ206を通じてHMD102の右目・左目ディスプレイ222に表示する。RAM203等に記憶された複合現実画像は、右目用と左目用の2枚が存在する。そのため、右目用の複合現実画像を右目・左目ディスプレイ222の右目のディスプレイに表示するよう制御し、左目用の複合現実画像を右目・左目ディスプレイ222の左目のディスプレイに表示するよう制御する。
【0118】
ステップS412では、情報処理装置101の操作受付部313は、HMD102を装着しているユーザに複合現実感を提示する処理の終了指示があったか否かを判定する。例えば、前述したステップS403乃至ステップS411の処理を実行する情報処理装置101のアプリケーションの停止指示や終了指示があったか否かを判定する。終了指示があったと判定した場合には、本一連の処理を終了する。終了指示があったと判定しなかった場合、すなわち終了指示がなかった場合にはステップS403に処理を戻し、終了指示があるまでステップS403乃至ステップS412の処理を繰り返す。
【0119】
図13は、形状変更前の選択差分データがターゲットマーカ105に重畳表示された様子を示す図である。ターゲットマーカ105によって表示対象ボタン803の“OLD”が選択されると、形状変更前の選択差分データが取得され、ターゲットマーカ105に重畳表示される。1301は、
図11に示す1103の形状変更後の選択差分データが、形状変更後の選択差分データに入れ替わった様子を示している。このように、設計変更前後の選択差分データを切り替えて表示させることができる。
【0120】
図14乃至
図16は、形状変更以外の設計変更がなされた選択差分データの様子を示す。
図14は、新たに追加された差分データが選択された場合を示している。新組立品データの1402に示すように、新しく差分データ(
図14では車のウィング)が追加されていることがわかる。そのため、この選択差分データを新組立品データにおいて識別表示する。また、1401に示すように、ターゲットマーカ105に選択差分データの三次元モデルを重畳表示する。
【0121】
図15は、位置または姿勢が変更された差分データが選択された場合を示している。選択差分データの三次元モデル(
図15では車のドアミラー)は、旧組立品データにおける1501と新組立品データにおける1502とに示すように、位置が変更されている。そのため、この選択差分データを新旧組立品データにおいて識別表示する。また、位置または姿勢が変更された選択差分データの三次元モデルはターゲットマーカ105には重畳表示しないので、
図15においても重畳表示されていないことがわかる。
【0122】
図16は、削除された差分データが選択された場合を示している。旧組立品データの1601に示すように、選択差分データ(
図16では車のマフラー)は旧組立品データの三次元モデルには存在していたが、新組立品データからは削除されている。そのため、旧組立品データにおいて選択差分データを識別表示する。また、削除された選択差分データの三次元モデルはターゲットマーカ105には重畳表示しないので、
図16においても重畳表示されていないことがわかる。
【0123】
以上説明したように、設計変更された部品データが構成する三次元モデルを仮想空間上で操作することなく、当該部品データを仮想空間上で閲覧可能となる。
【0124】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
【0125】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【0126】
したがって、本発明の機能処理をコンピュータで実現(実行可能と)するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0127】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0128】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM,DVD-R)などもある。
【0129】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0130】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0131】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0132】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0133】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0134】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0135】
101 情報処理装置
102 HMD
103 オプティカルマーカ
104 赤外線カメラ
105 ターゲットマーカ