(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-13
(45)【発行日】2024-06-21
(54)【発明の名称】仮想オブジェクト表示装置
(51)【国際特許分類】
G06T 19/00 20110101AFI20240614BHJP
G06F 3/01 20060101ALI20240614BHJP
【FI】
G06T19/00 300B
G06F3/01 510
(21)【出願番号】P 2023043872
(22)【出願日】2023-03-20
(62)【分割の表示】P 2020569309の分割
【原出願日】2019-02-01
【審査請求日】2023-03-20
(73)【特許権者】
【識別番号】000005810
【氏名又は名称】マクセル株式会社
(74)【代理人】
【識別番号】110000442
【氏名又は名称】弁理士法人武和国際特許事務所
(72)【発明者】
【氏名】橋本 康宣
(72)【発明者】
【氏名】高見澤 尚久
(72)【発明者】
【氏名】清水 宏
【審査官】三沢 岳志
(56)【参考文献】
【文献】特開2013-061870(JP,A)
【文献】国際公開第2016/002318(WO,A1)
【文献】国際公開第2018/150711(WO,A1)
【文献】特開平07-271546(JP,A)
【文献】米国特許出願公開第2017/0083084(US,A1)
【文献】国際公開第2014/129105(WO,A1)
【文献】特開2012-239776(JP,A)
【文献】特開2017-224003(JP,A)
【文献】特開2006-252468(JP,A)
【文献】特開2016-082411(JP,A)
【文献】特開2019-128915(JP,A)
【文献】浅井 紀久夫ほか,“没入型ディスプレイ内での視線追跡による仮想物体の指示”,日本バーチャルリアリティ学会論文誌,2002年09月30日,第7巻, 第3号,pp.355-365
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
仮想オブジェクト表示装置であって、
ディスプレイ
と、当該ディスプレイの表示制御を行う表示制御装置
と、前記仮想オブジェクト表示装置を装着したユーザから前記表示制御装置に対する入力操作を受け付ける入力コントローラと、を備え、
前記表示制御装置は、
前記仮想オブジェクト表示装置の現実世界内での移動量と回転量を検出し、前記仮想オブジェクト表示装置の移動に対して座標原点が追従し、前記仮想オブジェクト表示装置の回転によって前記ディスプレイの有効視野範囲が座標系内で回転する慣性座標系を用いて、慣性座標系仮想オブジェクトの配置位置を定義する座標系計算部と、
前記ディスプレイの有効視野範囲に前記慣性座標系仮想オブジェクトが含まれると、当該有効視野範囲に前記慣性座標系仮想オブジェクトを表示する表示制御部と、を含み、
前記ユーザの体幹の正面方向に、前記慣性座標系の正面方向を設定し、
前記入力コントローラが、前記慣性座標系の正面方向の入力操作を受け付けると、前記座標系計算部は、前記慣性座標系の正面方向を前記入力操作に応じて再設定する、
ことを特徴とする仮想オブジェクト表示装置。
【請求項2】
仮想オブジェクト表示装置であって、
ディスプレイと、当該ディスプレイの表示制御を行う表示制御装置と、前記仮想オブジェクト表示装置を装着したユーザから前記表示制御装置に対する入力操作を受け付ける入力コントローラと、を備え、
前記表示制御装置は、
前記仮想オブジェクト表示装置の現実世界内での移動量と回転量を検出し、前記仮想オブジェクト表示装置の移動に対して座標原点が追従し、前記仮想オブジェクト表示装置の回転によって前記ディスプレイの有効視野範囲が座標系内で回転する慣性座標系を用いて、慣性座標系仮想オブジェクトの配置位置を定義する座標系計算部と、
前記ディスプレイの有効視野範囲に前記慣性座標系仮想オブジェクトが含まれると、当該有効視野範囲に前記慣性座標系仮想オブジェクトを表示する表示制御部と、を含み、
前記ユーザの進行方向に、前記慣性座標系の正面方向を設定し、
前記入力コントローラが、前記慣性座標系の正面方向の入力操作を受け付けると、前記座標系計算部は、前記慣性座標系の正面方向を前記入力操作に応じて再設定する、
ことを特徴とする仮想オブジェクト表示装置。
【請求項3】
仮想オブジェクト表示装置であって、
ディスプレイと、当該ディスプレイの表示制御を行う表示制御装置と、複数の慣性座標系仮想オブジェクトを含むグループを少なくとも1つ以上記憶する仮想オブジェクト記憶部と、を備え、
前記表示制御装置は、
前記仮想オブジェクト表示装置の現実世界内での移動量と回転量を検出し、前記仮想オブジェクト表示装置の移動に対して座標原点が追従し、前記仮想オブジェクト表示装置の回転によって前記ディスプレイの有効視野範囲が座標系内で回転する慣性座標系を用いて、慣性座標系仮想オブジェクトの配置位置を定義する座標系計算部と、
前記ディスプレイの有効視野範囲に前記慣性座標系仮想オブジェクトが含まれると、当該有効視野範囲に前記慣性座標系仮想オブジェクトを表示する表示制御部と、を含み、
前記仮想オブジェクト表示装置を装着するユーザの体幹の正面方向に、前記慣性座標系の正面方向を設定し、
前記仮想オブジェクト記憶部は、前記グループに含まれる複数の慣性座標系仮想オブジェクトの配置位置を定義するために用いる慣性座標系の配置中心方向情報と、右利き操作グループ情報及び左利き操作グループ情報と、を更に記憶する、
ことを特徴とする仮想オブジェクト表示装置。
【請求項4】
仮想オブジェクト表示装置であって、
ディスプレイと、当該ディスプレイの表示制御を行う表示制御装置と、複数の慣性座標系仮想オブジェクトを含むグループを少なくとも1つ以上記憶する仮想オブジェクト記憶部と、を備え、
前記表示制御装置は、
前記仮想オブジェクト表示装置の現実世界内での移動量と回転量を検出し、前記仮想オブジェクト表示装置の移動に対して座標原点が追従し、前記仮想オブジェクト表示装置の回転によって前記ディスプレイの有効視野範囲が座標系内で回転する慣性座標系を用いて、慣性座標系仮想オブジェクトの配置位置を定義する座標系計算部と、
前記ディスプレイの有効視野範囲に前記慣性座標系仮想オブジェクトが含まれると、当該有効視野範囲に前記慣性座標系仮想オブジェクトを表示する表示制御部と、を含み、
前記仮想オブジェクト表示装置を装着するユーザの進行方向に、前記慣性座標系の正面方向を設定し、
前記仮想オブジェクト記憶部は、前記グループに含まれる複数の慣性座標系仮想オブジェクトの配置位置を定義するために用いる慣性座標系の配置中心方向情報と、右利き操作グループ情報及び左利き操作グループ情報と、を更に記憶する、
ことを特徴とする仮想オブジェクト表示装置。
【請求項5】
請求項1
~4のいずれか1項に記載の仮想オブジェクト表示装置であって、
前記座標系計算部は、前記慣性座標系を構成する一つの軸を、現実世界における鉛直方向に一致させて固定する、
ことを特徴とする仮想オブジェクト表示装置。
【請求項6】
請求項1
~4のいずれか1項に記載の仮想オブジェクト表示装置であって、
前記座標系計算部は、現実世界に固定された世界座標系を用いて世界座標系仮想オブジェクトの配置位置を定義することも更に行い、
前記表示制御部は、前記ディスプレイの有効視野範囲に前記世界座標系仮想オブジェクトが含まれると、当該有効視野範囲に前記世界座標系仮想オブジェクトを表示する、
ことを特徴とする仮想オブジェクト表示装置。
【請求項7】
請求項1
~4のいずれか1項に記載の仮想オブジェクト表示装置であって、
前記座標系計算部は、前記仮想オブジェクト表示装置に固定された座標原点を基準とし、前記仮想オブジェクト表示装置に固定された局所座標系を用いて局所座標系仮想オブジェクトの配置位置を定義することも更に行い、
前記表示制御部は、前記ディスプレイの有効視野範囲に前記局所座標系仮想オブジェクトが含まれると、当該有効視野範囲に前記局所座標系仮想オブジェクトを表示する、
ことを特徴とする仮想オブジェクト表示装置。
【請求項8】
請求項1または2に記載の仮想オブジェクト表示装置であって、
複数の慣性座標系仮想オブジェクトを含むグループを少なくとも1つ以上記憶する仮想オブジェクト記憶部を更に備え、
前記仮想オブジェクト記憶部は、各グループに含まれる複数の慣性座標系仮想オブジェクトの配置位置を定義するために用いる慣性座標系の配置中心方向情報を更に記憶する、
ことを特徴とする仮想オブジェクト表示
装置。
【請求項9】
請求項8に記載の仮想オブジェクト表示装置であって、
前記仮想オブジェクト記憶部は、右利き操作グループ情報及び左利き操作グループ情報を記憶する、
ことを特徴とする仮想オブジェクト表示装置。
【請求項10】
請求項3または4に記載の仮想オブジェクト表示装置であって、
前記表示制御装置は、前記慣性座標系の正面方向を記憶する座標系情報記憶部を更に含み、
前記座標系情報記憶部は、前記仮想オブジェクト表示装置において最後に正面方向として設定された方向を記憶し、
前記座標系計算部は、前記仮想オブジェクト表示装置の主電源が投入されると、前記座標系情報記憶部に記憶された正面方向を、前記慣性座標系の正面方向として再設定する、
ことを特徴とする仮想オブジェクト表示装置。
【請求項11】
請求項
3または4に記載の仮想オブジェクト表示装置であって、
前記表示制御装置に接続され、
前記仮想オブジェクト表示装置の加速度を計測する加速度センサを備え、
前記座標系計算部は、前記加速度センサの信号に基づいて
計算された前記仮想オブジェクト表示装置の位置を平滑化して得られた平滑化位置を算出し、前記平滑化位置に前記慣性座標系の原点を再設定する、
ことを特徴とする仮想オブジェクト表示装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想オブジェクト表示装置に関する。
【背景技術】
【0002】
従来、ヘッドマウントディスプレイ(HMD)に仮想オブジェクトを表示する技術がある。このような仮想オブジェクトの表示技術において用いられる座標系として、世界座標系と局所座標系とが知られている。
【0003】
世界座標系とは現実世界の座標系であり、世界座標系に配置した仮想オブジェクトは、ユーザがその場所から離れると、見えなくなる。反面、現実世界と同じ広さがあるので、大量の仮想オブジェクトを配置することができる。
【0004】
一方、局所座標系は、HMDに固定された座標系であり、HMDに搭載されたディスプレイとも位置関係が固定される。そしてユーザの視点から見て、ディスプレイの表示面が存在する方向に配置された仮想オブジェクトが、ディスプレイに表示される。ディスプレイの表示面が存在する方向範囲内の局所座標系に仮想オブジェクトを配置すれば、HMDを装着したままユーザが移動してもディスプレイも局所座標系に固定されているので常に仮想オブジェクトを表示させ、操作することができる。反面、上記方向範囲に配置した仮想オブジェクトしか表示できないので仮想オブジェクトの配置数に制限がある。
【0005】
このように、世界座標系及び局所座標系の2つしか仮想オブジェクト配置用の座標系を持たない従来技術では、頻繁に参照したい仮想オブジェクトを大量に配置できない、という課題があった。また、無理にディスプレイの表示面が存在する方向内に仮想オブジェクトを配置すると外界の視認性が低下する、という課題も生じていた。
【0006】
この課題を解決するための技術として、特許文献1では「ウェアラブルな頭部装着表示システムは、見掛けの実世界深度および見掛けの実世界位置で、頭部装着表示システムの装着者によって知覚可能な拡張現実オブジェクトを表示するためのニアアイディスプレイと、装着者の視野(FOV)の関数として拡張現実オブジェクトの見掛けの実世界位置を調整するためのコントローラとを含む。関数は、拡張現実オブジェクトの境界領域、および、拡張現実オブジェクトの境界領域と装着者のFOVとの間の1つまたは複数の重複パラメータに基づく(要約抜粋)」ことが提案されている。
【0007】
特許文献1によれば、世界座標系に配置した仮想オブジェクトの一部分を装着者の視野に残しておくことで、世界座標系に配置した仮想オブジェクトへ容易にアクセスできるようになり、常に参照できる仮想オブジェクトの数を増やすことができる。
【先行技術文献】
【特許文献】
【0008】
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら特許文献1に開示された技術では、世界座標系に配置した仮想オブジェクトは、ユーザが世界座標系内で移動すると仮想オブジェクトとユーザとが離れてしまい、装着者の視野内に表示させづらくなる。それを解消するために装着者の視野内に仮想オブジェクトを配置すると、結局装着者の視野内へ仮想オブジェクトを多数配置することになり、外界への視認性の低下という課題は解決できず、本質的な課題解決には至っていないという実情がある。
【0010】
本発明は、上記実情に鑑みてなされたものであり、世界座標系及び局所座標系の其々の欠陥を補間し、ユーザ利便性を向上させた新たな仮想オブジェクトの表示技術を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するために、本発明は、請求の範囲に記載の構成を備える。その一例を挙げるならば、仮想オブジェクト表示装置であって、ディスプレイと、当該ディスプレイの表示制御を行う表示制御装置と、前記仮想オブジェクト表示装置を装着したユーザから前記表示制御装置に対する入力操作を受け付ける入力コントローラと、を備え、前記表示制御装置は、前記仮想オブジェクト表示装置の現実世界内での移動量と回転量を検出し、前記仮想オブジェクト表示装置の移動に対して座標原点が追従し、前記仮想オブジェクト表示装置の回転によって前記ディスプレイの有効視野範囲が座標系内で回転する慣性座標系を用いて、慣性座標系仮想オブジェクトの配置位置を定義する座標系計算部と、前記ディスプレイの有効視野範囲に前記慣性座標系仮想オブジェクトが含まれると、当該有効視野範囲に前記慣性座標系仮想オブジェクトを表示する表示制御部と、を含み、前記ユーザの体幹の正面方向に、前記慣性座標系の正面方向を設定し、前記入力コントローラが、前記慣性座標系の正面方向の入力操作を受け付けると、前記座標系計算部は、前記慣性座標系の正面方向を前記入力操作に応じて再設定する、ことを特徴とする
【発明の効果】
【0012】
本発明によれば、世界座標系及び局所座標系の其々の欠陥を補間し、ユーザ利便性を向上させた新たな仮想オブジェクトの表示技術を提供することができる。上述した以外の目的、構成、効果については以下の実施形態において明らかにされる。
【図面の簡単な説明】
【0013】
【
図1】本実施形態に係るHMDシステムの外観模式図
【
図6】慣性座標系が世界座標系内で移動した場合の説明図
【
図7】現実オブジェクト及び仮想オブジェクトの見え方について説明する図
【
図8】現実オブジェクト及び仮想オブジェクトの見え方について説明する図
【
図9】現実オブジェクト及び仮想オブジェクトの見え方について説明する図
【
図10】HMDシステムの処理の流れを示すフローチャート
【
図11】仮想オブジェクトを記憶したデータ構造の一例を示す図
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について図面を用いて説明する。全図を通じて同一の構成、処理には同一の符号を付し、重複説明を省略する。
図1は、本実施形態に係るHMDシステム1(HMD:ヘッドマウントディスプレイ)の外観模式図である。
図2は、HMD100のハードウェア構成図である。
【0015】
図1に示すように、HMDシステム1は、ユーザの頭部に装着されたHMD100及び入力コントローラ400を含む。入力コントローラ400は、近距離無線通信回線を介してHMD100に通信接続され、情報の送受信を行う。なお、有線で情報の送受信を行ってもよい。
【0016】
入力コントローラ400は、キーボードやキーボタンからなる操作部材と、近距離無線通信器とを含んで構成される。
【0017】
サーバ200は仮想オブジェクトを生成し、HMD100に対して外部ネットワーク300を介して送信する。HMD100が自ら仮想オブジェクトを生成し、表示するように構成してもよい。
【0018】
図2に示すように、HMD100は、カメラ111、インカメラ112、測距センサ113、の他、運動を計測する慣性センサとしての加速度センサ115、ジャイロセンサ116(加速度センサ115、ジャイロセンサ116は運動計測センサに相当する。)を備える。更に、HMD100は、地磁気センサ117、GPS受信器118、ディスプレイ119、ネットワーク通信器120、CPU125、メモリ128、近距離無線通信器129と、各構成要素を接続するバス140を介して互いに接続される。ネットワーク通信器120は、無線通信電波を受信するアンテナ123に接続される。
【0019】
ネットワーク通信器120は、無線LAN、有線LAN或いは基地局通信により外部のサーバ200と通信を行う通信インターフェースであり、無線通信に際してはアンテナ123を介して外部ネットワーク300に接続し情報の送受信を行う。ネットワーク通信器120は、外部ネットワーク300を経由してサーバ200で生成された仮想オブジェクトを受信し、サーバ200と動作制御信号の送受信を行うことができる。ネットワーク通信器120は、W-CDMA(Wideband Code Division Multiple Access)やGSM(登録商標)(Global System for Mobile communications)などの遠距離の無線通信規格に対応した通信器により構成される。
【0020】
近距離無線通信器129は、入力コントローラ400とHMD100との間で近距離無線通信を行う通信インターフェースである。近距離無線通信器129は、例えば電子タグを用いて行われるが、これに限定されず、Bluetooth(登録商標)、IrDA(Infrared Data Association)、Zigbee(登録商標)、HomeRF(Home Radio Frequency、登録商標)、又は、無線LAN(IEEE802.11a、IEEE802.11b、IEEE802.11g)に対応した通信器により構成される。
【0021】
HMD100は、近距離無線通信器129を介して入力コントローラ400に接続される。HMD100は、近距離無線通信回線を介して入力コントローラ400が受け付けた操作情報を受信する。CPU125は、メモリ128に格納されたプログラム126をロードして実行し、必要に応じて情報データ127を読み出してプログラム126の実行処理に用いる。CPU125は、映像130や仮想オブジェクト131をディスプレイ119に表示する。よって、CPU125、メモリ128、プログラム126、および情報データ127を総称して表示制御装置1200という。
【0022】
ディスプレイ119は、HMD100を装着したユーザの両眼の前方に設置される。CPU125は、カメラ111で撮影された現実空間情報の映像130やサーバ200から受信した仮想オブジェクト131をディスプレイ119に表示する。
【0023】
加速度センサ115は、HMD100の加速度を検出するセンサであり、HMD100の位置変化と重力加速度の向きから垂直方向を捉えることができる。
【0024】
ジャイロセンサ116は、HMD100の3軸回転方向の角速度を検出するセンサであり、この角速度から、HMD100の姿勢、すなわち局所座標系の世界座標系に対する向きを表すオイラー角(ピッチ角、ヨー角、ロー角)、あるいは正規化四元数を検出する。HMD100に搭載されている加速度センサ115及びジャイロセンサ116を用いて、HMD100を装着しているユーザの頭部の動きを検出することができる。
【0025】
地磁気センサ117は、地球の磁力を検出するセンサであり、HMD100が向いている方向を検出するものである。前後方向と左右方向に加え上下方向の地磁気も検出する3軸タイプを用い、頭部の動きに対する地磁気変化を捉まえることにより、頭部の動きを検出することも可能である。これらにより、HMD100を装着中のユーザ頭部の動き変動を詳しく検出することができる。
【0026】
CPU125は、HMD100の制御コントローラを構成し、メモリ128に格納されているOS(Operating System)や動作制御用アプリケーションなどのプログラム126を実行する。
【0027】
メモリ128は、フラッシュメモリなどであり、CPU125が使用する各種のプログラム126を記憶する。さらにメモリ128は、サーバ200から受信した仮想オブジェクトを情報データ127として記憶している。
【0028】
図3は、CPU125の機能を示す機能ブロック図である。CPU125は、座標系計算部1251、外界認識部1254、及び表示制御部1255を含む。メモリ128の一部領域は、仮想オブジェクトを記憶する仮想オブジェクト記憶部1281、及び座標系の位置や向きの情報及び慣性座標系の正面方向を記憶する座標系情報記憶部1282を形成する。各構成要素の処理の詳細は後述する。
【0029】
ここで慣性座標系の正面方向とは、ユーザが一時的に頭部の向きを変えた場合にも、平均的なユーザの正面方向に留まっている慣性座標系の基準方向を意味する。頻繁に確認あるいは操作を行いたい仮想オブジェクトを慣性座標系に設定した配置中心方向を中心に配置し、その配置中心方向を慣性座標系の正面方向に設定すれば、ユーザがあまり頭を回転させなくても頻繁に使用する仮想オブジェクトを確認あるいは操作できる。
【0030】
さらに、使用目的により、頻繁に確認あるいは操作を行いたい仮想オブジェクトのグループが分かれる場合は、そのグループに対応した配置中心方向を設定してもよい。例えば慣性座標系のX軸正方向近傍に作業Aに関連したアプリのアイコン群を配置し、Y軸正方向近傍に作業Bに関連したアプリのアイコン群を配置する、という使用方法でもよい。また配置中心方向の直近近傍は、作業対象となるオブジェクトが位置する場合が多いので、上記の仮想オブジェクトは配置中心方向の直近近傍は避けて配置してもよい。
【0031】
本発明では、各座標系の向きの検出と制御が重要となる。各座標系の向きは世界座標系を基準として、各座標系の世界座標系に対する向きを、その座標系の向きに合わせるように世界座標系を回転させた場合の回転操作で表す。回転操作は、具体的には、オイラー角(ロール角、ピッチ角、ヨー角)あるいは、正規化四元数で表現する。
【0032】
HMD100に仮想オブジェクトを配置するために用いる座標系は、従来からある世界座標系及び局所座標系と、世界座標系及び局所座標系の其々の欠点を補間するための新たな座標系としての慣性座標系とがある。以下、各座標系の特徴点については
図4~
図8を参照して説明する。
図4は、局所座標系についての説明図である。
図5は、慣性座標系の説明図である。
図6は、慣性座標系が世界座標系内で移動した場合の説明図である。
【0033】
世界座標系は、現実世界に固定された1点を座標原点とし、現実世界に固定された3軸直交座標系を構成する3つの座標軸方向を有する座標系である。従って、HMD100が現実世界の空間位置を変化させたとしても、世界座標系で定義された仮想オブジェクトの配置位置は変化しない。本実施形態では、HMD100の初期化時にHMD100の姿勢と位置を基準として世界座標系を設定し、初期化後、HMD100の現実世界に対する位置移動と姿勢変更を、主として加速度センサ115およびジャイロセンサ116の測定値から検出して、設定した世界座標系に対する局所座標系の位置と向きを計算する。GPS電波が受信できる場合は、GPS受信器118が受信したGPS測位電波から演算した緯度、経度、高度情報を世界座標系や局所座標系の位置計算の補助として用いてもよい。さらに、地磁気センサ117が測定する地磁気の方向を、座標系の向きの計算の補助として用いてもよい。
【0034】
以下に、世界座標系の設定方法の一例を示す。世界座標系の設定に同じく3軸直交座標系である局所座標系を使用するので、まず局所座標系を詳細に定義する。局所座標系の原点は、HMD100装着時にユーザの眼球奥の頭部中心近傍に位置するように設定する。ユーザが感じる自分の視点位置近傍に局所座標系原点を設定することにより、頭部回転時に局所座標系を回転させるだけでよく、表示の違和感をなくすための特別な処理をしなくてもよくなる。そして、局所座標系の座標軸は、HMD100装着時に、ユーザの正面方向がX軸の正方向、左手方向がY軸の正方向、上方がZ軸の正方向、と定める。なお、局所座標系の定義は上記の定義に限定されず、原点がHMD100の中心近傍に位置するようにすればよい。
【0035】
世界座標系は、HMD100の初期化時に設定する。まず、HMD100を静止状態にして初期化を行う。初期化時には、世界座標系の原点を局所座標系の原点に合わせる。HMD100が静止状態であれば、3軸加速度センサが検出する加速度は重力加速度のみとなり、局所座標系での垂直方向が分かる。そして垂直上向きを世界座標系のZ軸の正方向とする。そして、局所座標系のX軸の正方向を水平面に射影した方向を世界座標系のX軸の正方向とする。世界座標系のY軸の正方向は、X軸の正方向を正面としたときに左手になる方向である。
【0036】
これで、世界座標系が設定されたが、この初期化時にHMD100が水平に保持されている保証はないので、局所座標系の向きは必ずしも世界座標系には一致しない。但し、局所座標系を元に世界座標系を設定したので、逆に世界座標系を基準とした場合の、局所座標系の向きは分かっている。この局所座標系の初期状態での向きを世界座標系における世界座標系からの回転操作の結果として表現する。回転操作はオイラー角でも表現できるが、ここでは正規化四元数で表してqLW0とする。qLW0は世界座標系における表現である。
【0037】
正規化四元数とはノルムが1の四元数で、ある軸の回りの回転を表すことができる。単位ベクトル(nX、nY、nZ)を回転軸とした角度ηの回転を表す正規化四元数qは下記となる。
q=cos(η/2)+nXsin(η/2)i+nYsin(η/2)j+nZsin(η/2)k ・・・(1)
【0038】
ここで、i,j,kは四元数の単位である。ベクトル(nX、nY、nZ)の向きに向いたときの右回りの回転が、ηが正の回転方向である。任意の座標系の回転はこの正規化四元数で表されるので、世界座標系からの回転を表す正規化四元数で、局所座標系と慣性座標系の向きを表現する。世界座標系の向きを表す正規化四元数は1である。
【0039】
ここで記号の用法をまとめる。正規化四元数qの実数部分をSc(q)で表し、q*を正規化四元数qの共役四元数する。四元数のノルムを1に正規化する演算子を[・]で定義する。qを任意の四元数すると次式が[・]の定義である。
[q]=q/(qq*)1/2 ・・・(2)
【0040】
ここで(2)式右辺の分母が正規化四元数qのノルムである。次に、座標点あるいはベクトルp(pX、pY、pZ)を表現する四元数を次式で定義する。
p=pXi+pYj+pZk ・・・(3)
【0041】
また、単位ベクトルnに直交する平面へのベクトルの射影演算子をP(n)とする。ベクトルpの射影は次式で表される。
P(n)p=p+nSc(np) ・・・(4)
【0042】
本明細書においては、特に断りがない限り、成分表示でない座標点やベクトルを表す記号は四元数表示であるとする。
【0043】
座標点あるいは方向ベクトルp1がqで表される原点中心の回転操作により座標点あるいは方向ベクトルp2に変換されたとすると、p2は次式で計算できる。
p2=qp1q* ・・・(5)
【0044】
これにより、座標系の向きを表す正規化四元数が分かれば、仮想オブジェクトの位置座標の座標系間での変換が可能である。座標原点が異なる場合の座標点の変換式は後述する。ここで、後述の説明で使用するので、単位ベクトルn1を単位ベクトルn2に重ねるように、n1とn2を含む平面に垂直な軸回りで回転させる正規化四元数R(n1、n2)の表式を記しておく。
R(n1、n2)=[1-n2n1] ・・・(6)
【0045】
さて、上記の正規化四元数で初期化時の局所座標系の向きqLW0を表す。まず、初期化時に局所座標系において重力加速度ベクトル(gX、gY、gZ)を求め、四元数表現をgLとする。そして、重力加速度ベクトルの局所座標系のYZ平面への射影ベクトル(0、gY、gZ)の四元数表現をhLとする。射影演算子を用いれば次式で表される。
hL=P(i)gL ・・・(7)
【0046】
初期状態において局所座標系のX軸を世界座標系の水平面への射影方向に回転させて水平面上に重ね、その後、局所座標系のX軸回りの回転をさせて局所座標系のZ軸を世界座標系のZ軸に重ねる、という手順で、局所座標系から世界座標系への回転を考える。局所座標系のX軸を世界座標系の水平面に重ねる回転は、hLをgLに重ねる回転と等しいことに注意し、qLW0は世界座標系から局所座標系への回転として定義したことに注意すると、qLW0は次式のように求まる。
qLW0=q1
*q2
* ・・・(8)
【0047】
ここでのq1、q2は次式で定義される。
q1=R([hL]、[gL]) ・・・(9)
q2=R(q1kq1
*、-q1[hL]q1
*) ・・・(10)
【0048】
なお、ここでは上記のように世界座標系を定義したが、外界の位置を記述できる座標系であればよく、この例に限定されない。
【0049】
上記のように、初期化時に世界座標系を設定するが、以前に設定した世界座標系を使用したい場合もある。この場合は、外界の特徴点の座標値や、GPS受信器118が受信したGPS測位電波から演算した緯度、経度、高度情報を基に、初期化時に設定した世界座標系と以前に設定した世界座標系との位置関係を求め、以前に設定した世界座標系基準で局所座標系、慣性座標系の原点座標と向きを変更する。
【0050】
慣性座標系は、初期化時点では、局所座標系と原点を同一にして、向きは世界座標系と同一とする。慣性座標系の原点と向きは後述する方法により制御する。
【0051】
次に、HMD100の運動により、局所座標系の向きを表す正規化四元数qLWの変化を計算する方法について示す。ジャイロセンサ116が検出する角速度ベクトルを(ωX、ωY、ωZ)とすると、この角速度ベクトルωLの四元数表現は次式で与えられる。
ωL=ωXi+ωYj+ωZk ・・・(11)
【0052】
ここで、この角速度ベクトルωLは局所座標系での表現であることに注意する。世界座標系での角速度ベクトルωWは次式で与えられる。
ωW=qLWωLqLW
* ・・・(12)
【0053】
さらに、qLWが世界座標系における表現であることに注意すると、qLWの時間発展を決定する差分方程式は次式となる。
ΔqLW/Δt=(1/2)ωWqLW=(1/2)qLWωL ・・・(13)
【0054】
Δtをジャイロセンサ116の測定間隔にとり、(13)式により、逐次qLWを更新してゆく。(13)式で計算する際、近似精度を上げる手法を併用してもよいし、qLWのノルムを1に保つ補正を加えてもよい。さらに、誤差の蓄積を補正するために、地磁気センサ117による地磁気方向の測定結果を利用してもよいし、カメラ111や測距センサ113によって検出した外界の特徴点の位置情報を利用してもよい。
【0055】
局所座標系の世界座標系における原点位置の更新は、加速度センサ115による加速度の測定値を用いる。加速度センサ115が検出する加速度ベクトルを(aX、aY、aZ)とすると、この加速度ベクトルaLの四元数表現は次式で与えられる。
aL=aXi+aYj+aZk ・・・(14)
【0056】
ここで、この加速度ベクトルaLは局所座標系での表現であることに注意する。世界座標系での加速度ベクトルaWは次式で与えられる。
aW=qLWaLqLW
* ・・・(15)
【0057】
世界座標系における局所座標系原点の位置座標をOLW、局所座標系原点の速度ベクトルをvW、重力加速度ベクトルをgWとする。ここで、重力座速度ベクトルgWはHMD100の初期化時に測定できている。速度ベクトルvWの時間発展を決定する差分方程式は次式となる。
ΔvW/Δt=aW-gW ・・・(16)
【0058】
位置座標OLWの時間発展を決定する差分方程式は次式となる。
ΔOLW/Δt=vW ・・・(17)
【0059】
Δtを加速度センサ115の測定間隔にとり、(16)式(17)式により、逐次vWおよびOLWを更新してゆく。(16)式(17)式で計算する際、近似精度を上げる手法を併用してもよい。また、局所座標系の世界座標系における原点位置の更新には、GPS受信器118が受信したGPS測位電波から演算した緯度、経度、高度情報を利用してもよいし、カメラ111や測距センサ113によって検出した外界の特徴点の位置情報を利用してもよい。ここで、処理を簡単にするために、加速度センサ115の測定間隔はジャイロセンサ116の測定間隔と等しくしてもよい。
【0060】
以上の局所座標系の更新手順は、世界座標系が外界に対して固定されていればよく、世界座標系の初期状態の定義が変更されても適用可能である。
【0061】
仮想オブジェクトを表示するディスプレイ119は局所座標系に固定されているので、表示制御のために世界座標系や慣性座標系に配置された仮想オブジェクトに関した位置情報を局所座標系の表現に変換する。世界座標系での座標値やベクトルをpWとすると、pWの局所座標系での表現pWLは次式で計算できる。
pWL=qLW
*(pW-OLW)qLW ・・・(18)
【0062】
次に、慣性座標系原点の世界座標系における位置座標をOIWとする。慣性座標系原点は通常は局所座標系原点と一致させるが、異なっていても構わない。慣性座標系の向きをqIWとし、慣性座標系での座標値やベクトルをpIとすると、pIの局所座標系での表現pILは次式で計算できる。
pIL=qLW
*(qIWpIqIW
*+OIW-OLW)qLW ・・・(19)
【0063】
上記の変換式を基にして、仮想オブジェクトの表示位置と向きの座標系間での変換を計算することができる。
【0064】
以下、HMD100の動きや座標系の操作等により、仮想オブジェクトの見え方がどう変化するかを説明する。まず、HMD100から見ると、局所座標系は、HMD100に固定された1点を座標原点とし、HMD100に固定された3軸直交座標系を構成する3つの座標軸方向を有する座標系である。従って、HMD100を装着したユーザが頭の向きを変えると、局所座標系も同じ角度で回転する。
【0065】
一方、ディスプレイ119もHMD100に固定されており、仮想オブジェクトへのユーザの視線がディスプレイ119の表示範囲(表示面119bに)入る場合に仮想オブジェクトが表示される。座標系内において、仮想オブジェクトが表示可能になる範囲を有効視野範囲(FOV)119aと定義する。局所座標系においては、FOV119aは、ユーザ視点から見たディスプレイの表示面119bを見込む方向範囲の領域である。
図4Aで説明すると、局所座標系仮想オブジェクト420は、FOV119a内に入るのでディスプレイ119に表示されるが、局所座標系仮想オブジェクト410は、FOV119a内に入らないのでディスプレイ119に表示されない。
【0066】
以下は、ユーザが頭部を回転させ、局所座標系が回転した場合の仮想オブジェクトの見え方の例である。
【0067】
図4A、
図4Bにて局所座標系に配置された仮想オブジェクトの見え方の例を説明する。
図4Aの状態からユーザの頭の角度をヨー角ψ
1回転させると、
図4B図のように局所座標系の2軸(X
L軸、Y
L軸)もZ
L軸を中心にヨー角ψ
1と同じ角度で回転する。局所座標系の回転に伴って、局所座標系に固定されたFOV119a及び局所座標系仮想オブジェクト410、420も回転するので、局所座標系仮想オブジェクト420は同じ表示位置に視認し続けられるが、局所座標系仮想オブジェクト410をユーザはどれだけ頭を動かしても視認することはできない。上記では説明の便宜のため、ヨー角についてのみ説明したが、HMD100がロール角φ・ピッチ角θ分回転した場合も同様にX
L軸、Y
L軸、Z
L軸もロール角φ・ピッチ角θと同じ角度で回転する。
【0068】
慣性座標系は、座標原点はHMD100(又はユーザ)の現実空間内の移動に対して追従し、座標の向きはHMD100の現実空間内での回転に追従しない座標系である。このため、慣性座標系を基準としてみると、HMD100の回転によりFOV119aが回転する。このような座標系に仮想オブジェクトを配置することにより、ユーザの移動に対して仮想オブジェクトが追従し、かつユーザが頭を回転すれば、慣性座標系の全ての方向を視認することができるので、移動をしてもユーザ近傍に大量の仮想オブジェクトを視認可能な状態で保持できる、という効果が得られる。なお、座標原点がHMD100に追従する、とは座標原点が常にHMD100から一定の距離以内に留まることを意味する。制御を簡略にするために、座標原点を局所座標系と同一にしてHMD100の中心に設定してもよい。また、ユーザが慣性座標系の色々な方向を視認するために頭を回転させる場合は、頭を回転させている間、仮想オブジェクトの見え方を自然にするため、慣性座標系の方向は現実世界すなわち世界座標系に対して固定させておいてもよい。
【0069】
図5A、
図5Bにて、座標原点を局所座標系と同じHMD100の中心に固定し、座標の向きを世界座標系に対して固定した慣性座標系を用いた例を説明する。
図5Aの慣性座標系仮想オブジェクト510は、初期状態においてFOV119aの外側に配置され、慣性座標系仮想オブジェクト520はFOV119aの内側に配置されているものとする。初期状態から、ユーザの頭の角度をヨー角ψ
1回転させると、
図5Bで示すように局所座標系の2軸(X
L軸、Y
L軸)もZ
L軸を中心にヨー角ψ
1と同じ角度で回転する。この局所座標系の回転に伴って、局所座標系に固定されたFOV119aは、
図5BのようにFOV119aへと回転する。
【0070】
一方、慣性座標系の向きを世界座標系に対して相対的に固定されるように選んだので、初期状態から、ユーザの頭の角度をヨー角ψ1回転させても、慣性座標系仮想オブジェクト510、520は、世界座標系基準では位置を変えない。その結果、この場合、回転後のFOV119a内に慣性座標系仮想オブジェクト510も含まれるようになる。即ち、ユーザが慣性座標系仮想オブジェクト510を視認することができるようになる。説明の便宜のため、ヨー角についてのみ説明したが、HMD100がロール角φ・ピッチ角θ分回転した場合も同様にXL軸、YL軸、ZL軸もロール角φ・ピッチ角θと同じ角度で回転する。
【0071】
上記では、慣性座標系の向きを世界座標系に対して固定したが、変更操作により慣性座標系の向きを変更してもよい。また、ユーザの移動により、慣性座標系の原点も世界座標系内で動く。
図6に示すように、HMD100を装着したユーザが世界座標系における(x
1,y
1)にいるものとし、そのときの慣性座標系の座標原点が(x
1,y
1)であるとする。ユーザが(x
1,y
1)から(x
2,y
2)へ移動すると、その移動量と同じ移動量で慣性座標系の座標原点が平行移動し、(x
1,y
1)から(x
2,y
2)へと変化する。しかし、座標軸方向は、世界座標系に対して相対的に固定されているので、(x
1,y
1)を座標原点とする慣性座標系のX
I軸―Y
I軸の向きと、(x
2,y
2)を座標原点とする慣性座標系のX
I軸―Y
I軸の向きとは同一である。
【0072】
図7~
図9を参照して、世界座標系、局所座標系、慣性座標系に配置された実物オブジェクト、及び仮想オブジェクトの見え方について説明する。
図7~
図9において、矩形状マークは現実オブジェクトであり、世界座標系で配置位置が定義される。ひし形オブジェクトは、世界座標系で配置位置が定義された世界座標系仮想オブジェクトである。三角形マークは、局所座標系で配置位置が定義された局所座標系仮想オブジェクトを示す。円形マークは、慣性座標系で配置位置が定義された慣性座標系仮想オブジェクトを示す。実線は視認可能であることを示し、点線は視認できないことを示す。
【0073】
図7は、ユーザが世界座標系における位置を変化させることなく、頭部のみを回転させた場合の見え方の変化を示す図である。
図7の初期状態(上段)において、FOV119aには、局所座標系仮想オブジェクト711、慣性座標系仮想オブジェクト731、世界座標系仮想オブジェクト741と、現実オブジェクト721の一部が入っている。この状態でHMD100を装着したユーザが頭部を回転させると、FOV119aが回転する。局所座標系仮想オブジェクト711は、FOV119aと同じ回転量で回転移動するので回転移動後のFOV119aにも含まれ、視認できる。一方、FOV119aの外側に配置されていた慣性座標系仮想オブジェクト732、及び世界座標系仮想オブジェクト742は、回転後のFOV119aに含まれるので視認できるようになるが、FOV119aの内側にあった慣性座標系仮想オブジェクト731、世界座標系仮想オブジェクト741は視認できなくなる。
【0074】
図8は、ユーザが世界座標系における位置及び頭部の向きを変化させることなく、慣性座標系の座標軸方向の変更操作をした場合の見え方の変化を示す図である。慣性座標系の座標軸方向の変更操作が必要になる場合として、正面作業台とその側面に併設された側面作業台とからなるL字型作業台に向かって、椅子に座って作業をしている場合を想定する。正面作業台で作業をしているときのFOV119aには、
図8の初期状態(上図)が視認できているとする。ここで、慣性座標系の座標軸方向を回転させると、
図8の下図に示すように、局所座標系仮想オブジェクト711、現実オブジェクト721、世界座標系仮想オブジェクト741、743の現実世界における位置は不変であり、慣性座標系仮想オブジェクト731、732、733だけが図中左から右へと移動する。
【0075】
図9は、慣性座標系の座標軸方向、及び局所座標系は変化させることなく、ユーザが移動した場合の見え方の変化を表す図である。
図9の初期状態(上図)が視認できているとする。ユーザが世界座標系において移動(例えば歩行)して、現実オブジェクト721、722、723、724に近づくと、現実オブジェクト721、722、723、724及び世界座標系仮想オブジェクト741、742、743が近づくにつれて大きく見える。一方、局所座標系仮想オブジェクト及び慣性座標系仮想オブジェクトの其々は、見え方に変化がない。
【0076】
図10及び
図11を参照してHMDシステム1の処理内容について説明する。
図10は、HMDシステム1の処理の流れを示すフローチャートである。
図11は、仮想オブジェクトを記憶したデータ構造の一例を示す図である。
【0077】
HMD100の主電源が投入されると、加速度センサ115、ジャイロセンサ116、地磁気センサ117、GPS受信器118の其々が計測を開始する(S01)。カメラ111、インカメラ112、測距センサ113も起動し、以後の処理に必要があれば撮像する。
【0078】
次に、上述のように、HMD100の初期化時に、座標系計算部1251は、加速度センサ115からの信号により重力方向を検出し、これと、局所座標系のX軸方向から世界座標系を設定する(S02)。初期化時において慣性座標系原点は局所座標系原点に一致させ、慣性座標系の向きは世界座標系に一致させる。座標系計算部1251は、座標系情報記憶部1282に世界座標系を基準とした局所座標系および慣性座標系の初期化時の位置と向き、及び初期化時の重力加速度ベクトルを記録する。
【0079】
初期化後、加速度センサ115が検出する加速度ベクトルと、ジャイロセンサ116が検出する角速度ベクトルの値および各種センサの測定値を更新する(S03)。
【0080】
更新された加速度ベクトルと角速度ベクトルを基に、座標系計算部1251は、世界座標系を基準とした局所座標系の位置と向きを更新する。更新の際、他のセンサからの情報を援用してもよい。更新された位置と向きの情報は、座標系情報記憶部1282に記録される(S04)。
【0081】
更新された局所座標系の位置と向き、および慣性座標系の変更制御方法(後述)に基づき、座標系計算部1251は、世界座標系を基準とした慣性座標系の位置と向きを更新する。更新の際、他のセンサからの情報を援用してもよい。更新された位置と向きの情報は、座標系情報記憶部1282に記録される(S05)。
【0082】
表示制御部1255は、仮想オブジェクト記憶部1281を参照し、仮想オブジェクトの種類と各仮想オブジェクトの配置位置をどの座標系を用いて定義するかを読みとる。そして各仮想オブジェクトの各座標系における配置位置と向きを計算する。更に、表示制御部1255は、各座標系における配置位置と向きとを、HMD100の局所座標系に変換する(S06)。
【0083】
表示制御部1255は、仮想オブジェクトを配置する。ディスプレイ119のFOV119a内に仮想オブジェクトを配置することは、表示することと同義である(S07)。
【0084】
ユーザにより主電源がOFFにされなければ(S08/No)、ステップS03に戻り、新たにセンサから出力された信号を取得して以後の計算を実行する。
【0085】
以下、ステップS05の慣性座標系の変更操作例について説明する。
【0086】
(1)慣性座標系の変更方法(ユーザ指示)
慣性座標系の方向qIWの変更方法の基本は、ユーザ指示による。一例としては、カメラ111によりユーザの手を認識し、空間をスワイプする動作で、スワイプ方向に慣性座標系を回転させる。その際、視線方向と直交する面内におけるスワイプ方向と直交し、慣性座標系原点を通る方向軸の回りで慣性座標系を回転させてもよい。スワイプ動作を回転角速度ベクトルωSWに変換し、次式で方向を更新する。
ΔqIW/Δt=(1/2)ωSWqIW ・・・(20)
【0087】
ここで、Δtは局所座標系の更新間隔であり、スワイプ動作が継続されている間、回転角速度ベクトルωSWが有限の値を持つ。スワイプ動作が行われなければ回転角速度ベクトルωSWは0であり、慣性座標系の向きは世界座標系に対して固定されている状態になる。なお、慣性座標系の原点は、局所座標系原点に一致させる。この方法であると慣性座標系の向きを直接的に制御できる。
【0088】
また、入力コントローラ400にタッチパネル面を備えておき、そのタッチパネル面上におけるスワイプ動作によって制御をしてもよい。その場合、例えば、タッチパネル面内でスワイプ方向と直交し、慣性座標系原点を通る方向軸の回りで慣性座標系を回転させてもよい。
【0089】
また、慣性座標系の正面方向(例えばX軸方向)を定め、ユーザ側の基準方向(例えばHMD100の正面方向が平均的に向いている方向や体幹の正面方向)にその正面方向を合わせ、ユーザの頭の回転に対して、ユーザの基準方向が少なくとも完全には追従しない、という制御を組み合わせてもよい。
【0090】
(2)慣性座標系の変更方法(ユーザ基準方向をベースに制御)
まずユーザ側の基準方向を定める(ユーザ基準方向)。ユーザ基準方向は例えば、HMD100の正面方向が平均的に向いている方向とすることができる。そしてHMD100の正面方向とは、例えば局所座標原点からディスプレイの表示面119bの中心に向かう方向である。ユーザの正面方向を示す単位方向ベクトルを局所座標系における表現としてuLとする。そして、慣性座標系の正面方向の単位方向ベクトルを慣性座標系の表現としてfIとする。fIは、例えば仮想オブジェクトの配置中心方向の一つである。慣性座標系の原点は、局所座標系原点に一致させる。まずuLの世界座標系における方向を平滑化して平均方向<uLW>を定める。ここで、uLWは次式で与えられる。
uLW=qLWuLqLW
* ・・・(21)
【0091】
平均化の方法としては例えば指数移動平均を用いるがこれに限定されない。
<uLW(t+Δt)>=[ξuLW(t)+(1-ξ)<uLW(t)>] ・・・(22)
【0092】
ここでξは平均化係数で0から1の間の値をとる。fIを<uLW>に一致させるが、視認時に慣性座標系に配置された仮想オブジェクトの水平方向は保たれていた方が視認性がよいので、fIと直交する方向は水平方向に維持する。この場合、慣性座標系の世界座標系を基準とした方向qIWは次式で表される。
qIW=q2q1 ・・・(23)
【0093】
ここでのq1、q2は次式で定義される。
q1=R([P(k)fI]、[P(k)<uLW>]) ・・・(24)
q2=R(q1fIq1
*、<uLW>) ・・・(25)
【0094】
慣性座標系の正面方向を、HMD100の平均的な正面方向に合わせているので、ユーザが頭の向きを変えても、すぐには慣性座標系の向きは変わらない。これにより、FOV119aが慣性座標系内で回転するので、ユーザは局所座標系での視認範囲よりも広い方向範囲の慣性座標系内の仮想オブジェクトを視認し、操作することができる。つまり、この方法によりユーザは局所座標系内の表示可能領域の拡張領域として慣性座標系の空間を使用することができる。
【0095】
HMD100の正面方向に慣性座標系の正面方向が追従してくる追従速度は、使用態様により望ましい速度が異なる。例えば、HMD100の平均的な正面方向から頭の向きを変えている時間が長い場合は、上記の追従速度は遅いほどよい。一方、例えば、ユーザが主として頭を向けておきたい方向が頻繁に変わる場合には、上記の追従速度は速い方がよい。したがって、上記の追従速度はユーザの設定により、任意に変更できるようにしてもよい。上記の平均化の方法においては、(22)式の平均化係数ξの値を大きくするほど追従速度を大きくすることができる。
【0096】
また、ジャイロセンサ116が出力した信号から計算されたHMD100の回転方向を平滑化処理して得られた平滑化回転方向に慣性座標系の方向を追従させるので、慣性座標系の方向を平滑化処理したことと等価であり、ユーザの細かな動きがあっても慣性座標系仮想オブジェクトの表示が安定する、という効果もある。
【0097】
慣性座標系の正面方向は、仮想オブジェクトの配置中心方向が複数ある場合は、ユーザ指示によりその中から選択、あるいは切替を行えるようにしてもよい。また、スワイプ動作により慣性座標系の任意の方向を正面方向と定めてもよい。
【0098】
ユーザの基準方向をユーザの体幹の正面方向にしてもよい。ユーザの体幹の正面方向は、インカメラ112でユーザを撮像し、外界認識部1254が撮像画像からユーザの体幹領域を検出し、その認識結果を基に正面方向を決めてもよい。ここでは、仮想オブジェクトの視認性を保つために、ユーザの基準方向は外界の水平面内に取る。まず、インカメラ112により、局所座標系におけるユーザ胸部の表面に平行な方向を検出し、その法線方向でユーザの正面方向に向かう単位ベクトルの局所座標系での表現をsLとする。sLの水平面への射影方向をユーザの基準方向とする。この基準方向の世界座標系での表現uLWは次式で与えられる。
uLW=[P(k)qLWsLqLW
*] ・・・(26)
【0099】
ユーザの基準方向を安定化するためにはuLWの平滑化処理を行うが、平滑化処理以降の計算手順は(23)式から(25)式までと同一である。この方法では体幹の正面方向が基準方向となるため、主として作業を行う方向に体幹を向けることにより、慣性座標系の正面方向を合わせるという使い方ができ、慣性座標系の正面方向の制御が自然にできる。
【0100】
移動中はユーザの進行方向をユーザ基準方向としてもよい(この場合もローパスフィルタ等で平滑化処理を組み合わせてもよい)。この場合のユーザ基準方向の世界座標系での表現uLWは次式で与えられる。
uLW=[P(k)vW] ・・・(27)
【0101】
ここで、vWは世界座標系におけるユーザの移動速度ベクトルである。ユーザの基準方向を安定化するためにはuLWの平滑化処理を行うが、この場合も平滑化処理以降の計算手順は(23)式から(25)式までと同一である。加速度センサ115の出力に基づいて計算されたHMD100の進行方向(移動方向)を平滑化して得られた平滑化進行方向を算出し、慣性座標系の正面方向を平滑化進行方向に追従させて再設定する。
【0102】
以上のように、ユーザ基準方向ベースの制御方法によれば、ユーザが一時的に頭の方向を変えても、ユーザが平均的に頭を向けている方向に近い方向に慣性座標系の正面方向が維持される。局所座標系内の表示可能領域の拡張領域として慣性座標系を使用する場合は、この制御方法が便利である。
【0103】
ユーザ指示による(1)の変更制御と組み合わせてもよい。ユーザ指示により慣性座標系を回転させる場合は、回転後にユーザ基準方向に重なった方向を新たな慣性座標系の正面方向とする。また、急に体の向きを変えるなどした場合に、すぐに慣性座標系の正面方向をユーザ基準方向に合わせるためのユーザ指示による制御を行ってもよい。
【0104】
また、操作中に慣性座標系が動くと操作がやりにくい場合もあるので、この制御モードのon/offを、例えば入力コントローラ400を用いてユーザが入力操作を行うように制御できるようにしてもよいし、何か仮想オブジェクトに対する操作を行っているときは、offにしておく制御でもよい。
【0105】
(3)慣性座標系の制限
慣性座標系のZI軸は、世界座標系のZw軸、すなわち鉛直方向に合わせる、という制限を設けてもよい。この場合(1)のユーザによるスワイプ制御は、スワイプの水平方向の成分に対してのみ有効となる。
【0106】
(4)電源切断時および投入時の処理
電源切断時には、慣性座標系の正面方向を座標系情報記憶部1282に記憶しておいてもよい。慣性座標系の方向をユーザの変更操作がないかぎり世界座標系に固定しているモードの場合は、電源切断時にHMD100の正面方向が向いている方向を慣性座標系の正面方向とする。
【0107】
電源投入時の慣性座標系の設定としては、上述の初期化手順の設定方法の他、座標系計算部1251が電源投入時に前回の正面方向情報を読み出して、ステップS02で慣性座標系の向きをそれに合わせてもよい。
【0108】
(5)慣性座標系の座標原点の設定方法
上記の制御方法では、慣性座標系原点は局所座標系原点に一致させていたが、頭の細かな動きには追従させず、局所座標系原点位置を平滑化処理して得られた平滑化位置に設定し、ある程度大きな動きのみに対して、随時追従して更新するようにしてもよい。平滑化処理としては例えば次式の指数移動平均を用いる。
<OIW(t+Δt)>=ξOLW(t)+(1-ξ)<OIW(t)> ・・・(28)
【0109】
ここで、ξは平均化係数で0から1の間の値をとる。但し、慣性座標系に配置した仮想オブジェクトの視認性を確保するため、慣性座標系原点は、局所座標系原点すなわちHMD100の中心から一定の範囲内に留めるように制御する。
【0110】
(6)ページ制御
複数の慣性座標系を持ち、それぞれをページとして管理し、それぞれに仮想オブジェクトを配置してもよい。
図11に、仮想オブジェクの種類を記憶した仮想オブジェクト情報例を示す。
図11では、世界座標系現実オブジェクト、世界座標系仮想オブジェクト、局所座標系仮想オブジェクト、の他、複数の慣性座標系として、慣性座標系1、慣性座標系2、慣性座標系3の各慣性座標系で表示される慣性座標系仮想オブジェクトを規定している。
図11の「右利き用アイコングループ」、及び「左利き用アイコングループ」は、複数のアイコンを一つのグループにまとめたものである。また「右利き用アイコングループ」はユーザが右利きの場合にのみ表示し、「左利き用アイコングループ」はユーザが左利きの場合にのみ表示するので排他的表示制御を行う。このように、慣性座標系仮想オブジェクトの表示のon/offや、方向の制御を行ってもよい。操作対象(アクティブ)となる慣性座標系に配置した仮想オブジェクトを、非操作対象(非アクティブ)な慣性座標系に配置された仮想オブジェクトよりも濃くする等、どの仮想オブジェクトが操作対象となっていることが分かる表示をしてもよい。さらに、慣性座標系毎にスワイプで方向を変更できるようにしてもよいし、方向制御方法のモードを変えてもよい。
【0111】
また、仮想オブジェクトのそばに配置された慣性座標系1、慣性座標系2、慣性座標系3の其々で定義された複数のページを識別する番号等(色分け等)のマークを表示してもよい。ページ毎、換言すると、慣性座標系1、慣性座標系2、慣性座標系3の各慣性座標系とユーザとの距離を変えてもよい。操作対象となるページを手前側に表示する。その際、オブジェクトのユーザからの見込み角が一定になるように、距離により、大きさを制御してもよい。
【0112】
(7)全方位画像の表示
過去に撮像した、全方位画像(実オブジェクト、仮想オブジェクト)を表示するために慣性座標系の表示空間を用いてもよい。慣性座標系を回転させれば全方位の映像を見ることができる。
【0113】
また、過去の画像だけでなく、現時点での全方位の画像を慣性座標系の表示空間に表示して、色々な方向の画像を見られるようにしてもよい。
【0114】
(8)局所座標系の省略
慣性座標系の特定方向近傍に局所座標系に表示していた重要な仮想オブジェクトを表示することにして、局所座標系を設けなくてもよい。この場合、当該の重要な仮想オブジェクトにアクセスするためには、ユーザ基準方向に慣性座標系の前記特定方向を合わせる制御を行えば、すぐに重要な仮想オブジェクトにアクセスすることができる。
【0115】
(9)関連オブジェクトの自動配列
世界座標系仮想オブジェクトに対して加工等をする場合に、関連操作メニュー等をその時点での慣性座標系内であって、加工対象となる世界座標系仮想オブジェクトの近傍に表示するようにしてもよい。ユーザは、頭を回すか、慣性座標系を回すかして、その操作メニュー等にアクセスすることができる。
【0116】
(10)VRゴーグルやスマートフォンへの適用
VRゴーグルやスマートフォンへ適用してもよい。VRゴーグルの場合、外界の映像は、ビデオシースルーとして、世界座標系に配置される。スマートフォンの場合は、ユーザの位置を計測して慣性座標系の原点とする。また、スマートフォンと慣性座標系に固定した仮想オブジェクトとの距離が変化するので、その距離の変化に対応させて、当該仮想オブジェクトの表示上の大きさを変化させてもよい(スマートフォンを仮想オブジェクトの配置位置に近づけるとズームアップ)。
【0117】
上記実施形態によれば、世界座標系及び局所座標系の其々の欠陥を補間する新たな座標系としての慣性座標系を用いて仮想オブジェクトを配置することができる。これにより、局所座標系では座標系に固定されたFOV内にしか仮想オブジェクトを視認できる状態で配置することができず、配置数に制約があったり視認性が低下するという問題があった。これに対して、慣性座標系を用いて仮想オブジェクトの配置位置を定義することで、局所座標系でのFOVの外側に仮想オブジェクトを配置しておき、必要なときにユーザが頭を動かすことで仮想オブジェクトを視認できるので、視認性を低下させることなく配置数の制約を解消できる。
【0118】
更に、世界座標系に仮想オブジェクトを配置すると、ユーザが移動するにつれて仮想オブジェクトが見えにくくなるという欠点があるが、慣性座標系を用いて仮想オブジェクトの配置位置を定義すると、ユーザの移動に追従して仮想オブジェクトを移動させることができ、世界座標系がかかえる欠点を補間することができる。
【0119】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0120】
また、上記の各構成は、それらの一部又は全部が、ハードウェアで構成されても、プロセッサでプログラムが実行されることにより実現されるように構成されてもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【0121】
例えば上記実施形態では、世界座標系、局所座標系、慣性座標系の3つの座標系を用いて仮想オブジェクトをHMD100に表示したが、慣性座標系のみを用いて仮想オブジェクトを表示してもよい。また慣性座標系と、世界座標系及び局所座標系の少なくとも一つとを組み合わせて仮想オブジェクトを表示してもよい。
【符号の説明】
【0122】
1 :HMDシステム
100 :HMD
111 :カメラ
112 :インカメラ
113 :測距センサ
115 :加速度センサ
116 :ジャイロセンサ
117 :地磁気センサ
118 :GPS受信器
119 :ディスプレイ
119a :有効視野範囲
120 :ネットワーク通信器
123 :アンテナ
125 :CPU
126 :プログラム
127 :情報データ
128 :メモリ
129 :近距離無線通信器
130 :映像
131 :仮想オブジェクト
140 :バス
200 :サーバ
300 :外部ネットワーク
400 :入力コントローラ
410 :仮想オブジェクト
420 :仮想オブジェクト
510 :仮想オブジェクト
520 :仮想オブジェクト
1200 :表示制御装置