(57)【要約】【課題】コントローラの姿勢を介して指し示したつもりの照準方向とコントローラのモーションセンサを介して指し示される照準方向とを、３軸地磁気センサの検知特性のバラツキや変動に拘わらず感覚的に一致させ、照準の狂いによる操作者の違和感を解消すること。【解決手段】空間ポインティング処理には、第１のモーションセンサを介して推定されるコントローラの指し示す方向の基準点と第２のモーションセンサを介して推定される頭部装着具の指し示す方向の基準点とが整合するように両者の関係を校正する校正処理が含まれている。【選択図】図１３
2018037034.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも３軸地磁気センサを含む第１のモーションセンサが組み込まれたコントローラと、
少なくとも３軸地磁気センサを含む第２のモーションセンサ及びディスプレイが組み込まれた頭部装着具と、
前記第１及び第２のモーションセンサのそれぞれから得られる前記コントローラ及び頭部装着具の姿勢情報をローカル座標からワールド座標へと変換すると共に、ワールド座標上の各姿勢情報に基づいて、仮想空間におけるヘッドトラッキング表示処理及び空間ポインティング処理を実行する情報処理部とを備え、
前記空間ポインティング処理には、前記第１のモーションセンサを介して推定されるコントローラの指し示す方向の基準点と前記第２のモーションセンサを介して推定される頭部装着具の指し示す方向の基準点とが整合するように両者の関係を校正する校正処理が含まれている、情報処理システム。
【請求項２】
前記校正処理は、
所定の操作が行われたとき、前記第１のモーションセンサを介して推定されるコントローラの指し示す方向と前記第２のモーションセンサを介して推定される頭部装着具の指し示す方向との差分を補正値として取得する補正値取得処理と、
前記コントローラ及び／又は前記頭部装着具の指し示す方向に対して、以後、前記補正値を加算又は減算することにより、それらの指し示す方向を補正する補正処理とを含む、請求項１に記載の情報処理システム。
【請求項３】
前記補正値取得処理に先立って、前記コントローラの姿勢を介して照準を合わせるべき標的方向を示すための操作案内をユーザに対して行う、請求項２に記載の情報処理システム。
【請求項４】
前記操作案内が、前記ディスプレイの画面上に前記標的方向を示す標的マークを描くことにより、前記コントローラの姿勢を介して前記標的マークを指し示すように仕向けるものである、請求項３に記載の情報処理システム。
【請求項５】
前記標的方向が前記ディスプレイの画面中心を指し示す方向である、請求項２〜４に記載の情報処理システム。
【請求項６】
前記校正処理は、前記情報処理システムにおいて、任意のアプリケーションプログラムを実行するに際して、その開始時点で実行可能とされている、請求項１に記載の情報処理システム。
【請求項７】
前記校正処理は、前記情報処理システムにおいて、任意のアプリケーションプログラムを実行するに際して、その開始後の任意の時点で所定の操作に応答して実行可能とされている、請求項１に記載の情報処理システム。
【請求項８】
前記情報処理部が、前記頭部装着具に組み込まれ、かつ前記コントローラと通信可能なスマートフォンであり、かつ
前記第２のモーションセンサ及び前記ディスプレイが、前記スマートフォンに組み込まれたモーションセンサ及びディスプレイである、請求項１〜９のいずれか１つに記載の情報処理システム。
【請求項９】
スマートフォンを、請求項９に記載の情報処理システムに組み込まれたスマートフォントして機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、モーションセンサの組み込まれたコントローラとモーションセンサ及びディスプレイの組み込まれた頭部装着具とを備えて、仮想空間におけるヘッドトラッキング表示及び空間ポインティングを可能とした情報処理システムに関する。
【背景技術】
【０００２】
本出願人は、先に、少なくとも３軸地磁気センサを含む第１のモーションセンサが組み込まれたコントローラと、少なくとも３軸地磁気センサを含む第２のモーションセンサ及びディスプレイが組み込まれた頭部装着具と、第１及び第２のモーションセンサのそれぞれから得られるコントローラ及び頭部装着具の姿勢情報をローカル座標からワールド座標へと変換すると共に、ワールド座標上の各姿勢情報に基づいて、仮想空間におけるヘッドトラッキング表示処理及び空間ポインティング処理を実行する情報処理部とを備えた新規な情報処理システムを提案している（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５９４４６００号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の情報処理システムによれば、モーションセンサを介して検知されるコントローラや頭部装着具の姿勢は、ローカル座標値からワールド座標値へと変換されたのち、その指し示す方向の判別に利用されるため、その時々の姿勢変化分が現在姿勢に正しく反映されている限り、コントローラの姿勢により指し示したつもりの照準方向とモーションセンサを介して検知される仮想空間上の照準方向との間には、原理的に、大きな感覚的な誤差は生じない筈である。
【０００５】
しかしながら、コントローラや頭部装着具に組み込まれるモーションセンサを構成する３軸地磁気センサには、製品毎に検知特性のバラツキが少なからず存在するほか、周囲の温度等の環境条件によっても検知特性は少なからず変動することから、この種の情報処理システムにあっては、上述した３軸地磁気センサの検知特性のバラツキや変動に起因して、コントローラで指し示したつもりの照準方向とモーションセンサを介して指し示される照準方向との間には、少なからず感覚的な誤差を生ずることが認められた。
【０００６】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、ローカル座標からワールド座標へと変換された、コントローラ及び頭部装着具の姿勢を用いて、ヘッドトラッキング表示及び空間ポインティングを可能とする情報処理システムにおいて、コントローラの姿勢を介して指し示したつもりの照準方向とコントローラのモーションセンサを介して指し示される照準方向とを、３軸地磁気センサの検知特性のバラツキや変動に拘わらず感覚的に一致させ、照準の狂いによる操作者の違和感を解消することにある。
【０００７】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解される筈である。
【課題を解決するための手段】
【０００８】
上述の技術的課題は、以下の構成を有する情報処理システム、及びコンピュータプログラムにより、解決できるものと考えられる。
【０００９】
すなわち、本発明の情報処理システムは、少なくとも３軸地磁気センサを含む第１のモーションセンサが組み込まれたコントローラと、少なくとも３軸地磁気センサを含む第２のモーションセンサ及びディスプレイが組み込まれた頭部装着具と、前記第１及び第２のモーションセンサのそれぞれから得られる前記コントローラ及び頭部装着具の姿勢情報をローカル座標からワールド座標へと変換すると共に、ワールド座標上の各姿勢情報に基づいて、仮想空間におけるヘッドトラッキング表示処理及び空間ポインティング処理を実行する情報処理部とを備え、前記空間ポインティング処理には、前記第１のモーションセンサを介して推定されるコントローラの指し示す方向の基準点と前記第２のモーションセンサを介して推定される頭部装着具の指し示す方向の基準点とが整合するように両者の関係を校正する校正処理が含まれている。
【００１０】
このような構成によれば、前記空間ポインティング処理に含まれる校正処理の作用により、コントローラ及び頭部装着具の各推定方向の基準点が整合することとなるため、コントローラの姿勢を介して指し示したつもりの照準方向とコントローラのモーションセンサを介して指し示される照準方向とを、３軸地磁気センサの検知特性のバラツキや変動に拘わらず感覚的に一致させて、照準の狂いによる操作者の違和感を解消することができる。
【００１１】
好ましい実施の態様においては、前記校正処理は、所定の操作が行われたとき、前記第１のモーションセンサを介して推定されるコントローラの指し示す方向と前記第２のモーションセンサを介して推定される頭部装着具の指し示す方向との差分を補正値として取得する補正値取得処理と、前記コントローラ及び／又は前記頭部装着具の指し示す方向に対して、以後、前記補正値を加算又は減算することにより、それらの指し示す方向を補正する補正処理とを含む、ものであってもよい。
【００１２】
このような構成によれば、仮想空間上の照準方向とモーションセンサを介して指定される仮想空間上の照準方向との間に誤差が生じたと認められるときには、コントローラにおいて所定の操作を行うことで、その都度、補正値取得処理及び補正処理を実行させることにより、２つのモーションセンサの方向基準を整合させ、照準の狂いによる操作者の違和感を解消することができる。
【００１３】
このとき、前記補正値取得処理に先立って、前記コントローラの姿勢を介して照準を合わせるべき標的方向を示すための操作案内をユーザに対して行ってもよい。
【００１４】
このような構成によれば、補正値取得処理の起動に必要なコントローラの操作方法を案内することにより、ユーザの利便性を向上することができる。
【００１５】
このとき、前記操作案内が、前記ディスプレイの画面上に前記標的方向を示す標的マークを描くことにより、前記コントローラの姿勢を介して前記標的マークを指し示すように仕向けるものであってもよい。
【００１６】
このような構成によれば、補正値取得処理を起動させるためには、コントローラの姿勢を介して標的マークを指し示せばよいことをユーザに対して確実に教示することができる。
【００１７】
このとき、前記標的方向が前記ディスプレイの画面中心を指し示す方向であれば、敢えて、ディスプレイの画面上に標的方向を示す標的マークを描かずとも、ユーザに対して標的方向を容易に教示することができる。
【００１８】
好ましい実施の態様においては、前記校正処理は、前記情報処理システムにおいて、任意のアプリケーションプログラムを実行するに際して、その開始時点で実行可能とされていてもよい。
【００１９】
このような構成によれば、３軸地磁気センサの製品毎の検知特性バラツキに起因して当初から存在する照準の狂いに対応することができる。
【００２０】
好ましい実施の態様においては、前記校正処理は、前記情報処理システムにおいて、任意のアプリケーションプログラムを実行するに際して、その開始後の任意の時点で所定のトリガー操作に応答して実行可能とされていてもよい。
【００２１】
このような構成によれば、３軸地磁気センサの検知特性における経時的変化に起因する照準の狂いに対応することができる。
【００２２】
好ましい実施の態様においては、前記情報処理部が、前記頭部装着具に組み込まれ、かつ前記コントローラと通信可能なスマートフォンであり、かつ前記第２のモーションセンサ及び前記ディスプレイが、前記スマートフォンに組み込まれたモーションセンサ及びディスプレイであってもよい。
【００２３】
このような構成によれば、市販のスマートフォンを所持するユーザであれば、頭部装着具とコントローラとに加えて、スマートフォン上で動作する所定のアプリケーションプログラムを購入するだけで済むから、この種の情報処理システムを低コストに実現することができる。
【００２４】
別の一面から見た本発明は、スマートフォンを、上述の情報処理システムに組み込まれたスマートフォンとして機能させるためのコンピュータプログラムとして把握することもできる。
【００２５】
このようなコンピュータプログラムによれば、コントローラと頭部装着具とスマートフォンとを用意するだけで、本発明の情報処理システムを実現することができる。
【発明の効果】
【００２６】
本発明によれば、前記空間ポインティング処理に含まれる校正処理の作用により、コントローラ及び頭部装着具の各推定方向の基準点が整合することとなるため、コントローラの姿勢を介して指し示したつもりの照準方向とコントローラのモーションセンサを介して指し示される照準方向とを、３軸地磁気センサの検知特性のバラツキや変動に拘わらず感覚的に一致させて、照準の狂いによる操作者の違和感を解消することができる。
【図面の簡単な説明】
【００２７】
【図１】図１は、システムの使用状態を示す説明図である。
【図２】図２は、頭部装着具の外観を示す斜視図である。
【図３】図３は、頭部装着具へのスマートフォン組み込み手順の説明図である。
【図４】図４は、頭部装着具の使用状態を示す説明図である。
【図５】図５は、スマートフォンの電気的ハードウェア構成を示すブロック図である。
【図６】図６は、コントローラの外観を示す斜視図である。
【図７】図７は、コントローラの電気的ハードウェア構成を示すブロック図である。
【図８】図８は、全天球パノラマ画像の概念図である。
【図９】図９は、ローカル座標空間とワールド座標空間との関係を示す概念図である。
【図１０】図１０は、アプリケーションプログラム開始時の初期画面の説明図である。
【図１１】図１１は、校正時の操作方法を示す説明図である。
【図１２】図１２は、アプリケーションプログラム実行のための準備作業を示すフローチャートである。
【図１３】図１３は、処理の全体を概略的に示すゼネラルフローチャートである。
【図１４】図１４は、各処理の詳細を示すフローチャート（その１）である。
【図１５】図１５は、各処理の詳細を示すフローチャート（その２）である。
【図１６】図１６は、開始時校正処理の詳細フローチャートである。
【図１７】図１７は、開始後校正処理の詳細フローチャートである。
【図１８】図１８は、水平１８０度パノラマ画像の概念図である。
【図１９】図１９は、半天球パノラマ画像の概念図である。
【図２０】図２０は、情報処理部を独立に有するシステムの使用状態を示す説明図である。
【発明を実施するための形態】
【００２８】
以下に、本発明に係る情報処理システムの好適な実施の一形態を添付図面にしたがって詳細に説明する。
【００２９】
＜情報処理システムの一般的な構成について＞
先に説明したように、本出願に係る情報処理システムは、少なくとも３軸地磁気センサを含む第１のモーションセンサが組み込まれたコントローラと、少なくとも３軸地磁気センサを含む第２のモーションセンサ及びディスプレイが組み込まれた頭部装着具と、前記第１及び第２のモーションセンサのそれぞれから得られる前記コントローラ及び頭部装着具の姿勢情報をローカル座標からワールド座標へと変換すると共に、ワールド座標上の各姿勢情報に基づいて、仮想空間におけるヘッドトラッキング表示処理及び空間ポインティング処理を実行する情報処理部とを備え、前記空間ポインティング処理には、前記第１のモーションセンサを介して推定されるコントローラの指し示す方向の基準点と前記第２のモーションセンサを介して推定される頭部装着具の指し示す方向の基準点とが整合するように両者の関係を校正する校正処理が含まれているが含まれている。
【００３０】
コントローラとしては、手持ち型（ハンドヘルド型）又は身体装着型（ウェアラブル型）として構成され、その外観形状としては、その姿勢により任意の方向を指し示す、狙いを定める、又は照準を合わせるのに便利な形状であることが好ましい。
【００３１】
コントローラに組み込まれる第１のモーションセンサとしては、３軸地磁気センサと３軸加速度センサとを組み合わせたもの、又は３軸地磁気センサと３軸加速度センサと３軸角速度センサとを組み合わせたものが好ましい。それらのセンサは、コントローラ本体に対して一定の姿勢で取り付けられる。
【００３２】
なお、コントローラには、上述の第１のモーションセンサの他に、１又は２以上の操作子、並びに、それらの操作子の操作により生成される信号を処理したり、外部との通信を行うための情報処理部が設けられても良い。
【００３３】
頭部装着具としては、ヘッドギア型、メガネ型、帽子型、ヘアバンド型等々、要するに、手を離した状態でも頭部に保持されて、ユーザの眼前に対向するようにしてディスプレイを支えることができるものであれば、差し支えない。
【００３４】
頭部装着具に組み込まれる第２のモーションセンサとしても、３軸地磁気センサと３軸加速度センサとを組み合わせたもの、又は３軸地磁気センサと３軸加速度センサと３軸角速度センサとを組み合わせたものが好ましい。それらのセンサは、頭部装着具に対して一定の姿勢で取り付けられる。後述するように、それらのセンサは、所謂スマートフォン等と称される携帯型高機能情報端末に組み込まれたもので代用することもできる。
【００３５】
頭部装着具に組み込まれる（取り付けられるの意味も含まれる）ディスプレイとしては、ディスプレイ装置単独のものでもよいし、所謂スマートフォン等と称される携帯型高機能情報端末の表示画面で代用するものであってもよい。なお、ディスプレイのデバイスとしてはカラー液晶デバイスやカラー有機ＥＬデバイス等で構成すればよい。
【００３６】
情報処理部とは、そのような機能を有する手段を総称するもので、具体的には、コントローラや頭部装着具とは別に単独で設けられる１個の情報処理部（パーソナルコンピュータ、ゲーム用コンピュータ等々）７０で構成することもできるほか（図２０参照）、後述するように、頭部装着具にスマートフォンが組み込まれる場合には、当該スマートフォンの情報処理部（制御部５０１）にて代用することもできる（図５参照）。さらに、その機能を頭部に組み込まれるスマートフォンの情報処理部（ＣＰＵ）とコントローラに組み込まれる情報処理部（ＣＰＵ）とで分担するものであってもよい。
【００３７】
なお、３軸地磁気センサとは、当業者には、よく知られているように、磁気センサの一種であって、地磁気の向きを検知し，方位を直交３軸（Ｘ軸、Ｙ軸、Ｚ軸）の値で算出するセンサを言う。すなわち、このセンサは、前後方向と左右方向の第１、第２の磁気センサに加えて上下方向の地磁気を検出する第３の地磁気センサを持っている。このため、たとえば、操作子を持つ角度に電子コンパスを傾けた状態でも、何度傾けて持っているかがわかれば、その傾き分を差し引いて水平方向の地磁気を計算し、正しい方位を表示できる。３軸地磁気センサに組み込まれる地磁気センサＩＣで利用されている磁気センサ素子には主に３種類が知られている。それらは、ＭＲ（magneto-resistive）素子，ＭＩ（magneto-impedance）素子，ホール素子である。ＭＲ素子は、例えば外部磁界の強度変化とともに抵抗値が変わるパーマロイ（NiFe）など金属軟磁性体のＭＲ効果、ＭＩ素子は外部磁界が変動したときにインピーダンスが変わるアモルファス・ワイヤのＭＩ効果を利用する。ワイヤにはパルス電流を流しておく。ホール素子では，半導体のホール効果によって生じた電位差を検出することで，外部磁界の変化を測定する。地磁気センサＩＣには、一般にこうした磁気センサ素子のほか，駆動回路や増幅回路などを内蔵している。
【００３８】
３軸加速度センサとは、当業者にはよく知られているように、Ｘ軸・Ｙ軸・Ｚ軸の３方向の加速度を1つのデバイスで測定できるセンサであって、３次元の加速度が検出でき、重力（静的加速度）の計測にも対応できる。３軸加速度センサの多くは、半導体製造技術やレーザ加工技術などの微細加工技術を応用し、シリコン基板上に微小な機械構造を集積化する「微小電気機械素子創製技術（Micro Electro Mechanical Systems、ＭＥＭＳ、メムス、マイクロマシン）」により小型化されたＭＥＭＳセンサである。ＭＥＭＳ・３軸加速度センサは、±数ｇの範囲の測定が可能で、０Ｈｚ〜数百Ｈｚまでの加速度変動に追従できる「ｌｏｗ  ｇ」タイプとよばれる。この場合の０Ｈｚというのは、センサに重力加速度のみが加わっている状態であり、このときのＸ軸・Ｙ軸・Ｚ軸の加速ベクトルの合計から地面に対しての向きを測定することができる。ＭＥＭＳ・３軸加速度センサは、大きく分けて半導体ピエゾ抵抗型３軸加速度センサ、静電容量型３軸加速度センサ、熱検知型（ガス温度分布型）３軸加速度センサの３種類があり、それぞれ加速度の測定方法が異なる。半導体ピエゾ抵抗型３軸加速度センサは、加速度が錘に作用したときに発生するダイアフラムの歪みを検出して加速度を測定する。静電容量型３軸加速度センサは加速度の測定に静電容量の変化を、熱検知型（ガス温度分布型）３軸加速度センサは、ヒータで熱されたガスの移動を利用して加速度を測定する。
【００３９】
３軸角速度センサとは、当業者には、よく知られているように、回転角速度の測定を直交３軸（Ｘ軸，Ｙ軸，Ｚ軸）で実現する慣性センサの一種であって、ジャイロセンサとも称される。角速度センサは加速度センサでは反応しない回転の動きを測定する。ジャイロセンサは、回転を検知する方式により分類することができる。現在、最も一般的に民生機器に搭載されているのは、ＩＣタイプのＭＥＭＳ（Micro Electro Mechanical System）技術を使った振動式ジャイロセンサである。ＭＥＭＳ技術を利用した慣性センサはその名前が示す通り、機械的な動きをする素子と、その信号を処理する電子回路を組み合わせた技術でセンサを構成し、動きを検知する。振動式ジャイロセンサの中には、シリコンを使う静電容量方式と、水晶や他の圧電材料を使うピエゾ方式の種類がある。振動式ジャイロセンサ以外の種別としては、地磁気式、光学式、機械式などがある。３軸は、一般に上下、左右、前後の３つの軸として定義され、上下軸は「ヨー軸」、左右軸は「ピッチ（ピッチング）軸」、前後軸は「ロール軸」と呼ばれることが多い。振動式のジャイロセンサは全てコリオリの力（転向力）を利用して回転を検知する。
【００４０】
＜情報処理システムの具体的な一例について＞
［システムの全体構成］
本発明に係る情報処理システムのより具体的な一例の使用状態を示す説明図が、図１に示されている。同図に示されるように、この情報処理システム１は、ユーザ４０の手に把持される手持ち型のコントローラ１０と、ユーザ４０の頭部４１に装着されるヘッドギア型の頭部装着具２０と、そのディスプレイ画面５１がユーザ４０の眼前に対向するようにして頭部装着具２０の内部に組み込まれるスマートフォン５０（図３参照）とから構成されている。なお、図において、符号２１は頭部装着具２０をユーザの頭部に装着するための頭周ベルトである。
【００４１】
［頭部装着具の構成］
頭部装着具の外観を示す斜視図が図２に、頭部装着具へのスマートフォン組込手順の説明図が図３に、頭部装着具の使用状態を示す説明図が図４にそれぞれ示されている。それらの図に示されるように、頭部装着具２０は、前面に開口２４を有しかつ後面はユーザ４０の目４３にあてがわれる本体２３を有する。本体２３は、ユーザ４０の頭部周囲にあてがわれる頭周ベルト２１と頭頂部にあてがわれる頭頂ベルト２２とを有する。前面開口２４には、外側へ開くようにした蓋板２５が開閉自在にヒンジ結合されている。蓋板２５の内面側の４つの辺縁には、表示画面５１を内側に向けた状態でスマートフォン５０を保持するための適当な保持具２６が設けられている。さらに、蓋板２５の一辺縁には雌型留め具２７ａが、開口２４の対応する一辺縁には雄型留め具２７ｂがそれぞれ設けられ、それらの留め具２７ａ，２７ｂを介して、蓋板２５は開口２４を閉じた状態に保持可能とされている。
【００４２】
頭部装着具２０へのスマートフォン５０の組み込みにあたっては、先ず、頭部装着具２０の前面蓋板２５を開いた状態において、必要なアプリケーションプログラムがインストールされたスマートフォン５０を用意する（図３（ａ）参照）。次いで、蓋板２５の内面側に、スマートフォン５０を４つの保持具２６を介して保持させる（図３（ｂ）参照）。しかるのち、蓋板２５を閉じれば、頭部装着具２０へのスマートフォン５０の組込が完成する（図１参照）。
【００４３】
ユーザ４０が、スマートフォン５０の組み込まれた頭部装着具２０を頭部４１に装着すると、図４に示されるように、ユーザ４０の眼前には、仕切り板２８に保持された光学系２９を介して、スマートフォン５０の表示画面５１が対面する。そのため、スマートフォン５０のディスプレイの表示画面５１は、いわゆるヘッドマウントディスプレイ（ＨＭＤ）として機能する。
【００４４】
［スマートフォンの構成］
スマートフォンは、よく知られているように、一方の面の中央部にディスプレイ、その上下に操作ボタン、スピーカ、インカメラを有し、他方の面にアウトカメラを有している。後に、図５を参照して詳細に説明するように、スマートフォンには、モーションセンサを構成する３軸加速度センサ、３軸角速度センサ、及び３軸地磁気センサがそれぞれ組み込まれている。そのため、それらのセンサによって、スマートフォン１０の位置、姿勢、及び／又は、それらの動きも含めた変化を自在に検知可能とされている。
【００４５】
スマートフォンの電気的ハードウェア構成の一例を示すブロック図が、図５に示されている。同図に示されるように、スマートフォン５０の電気回路は、制御部５０１、記憶部５０２、ディスプレイ５０３、入力操作部（タッチパネル）５０４、入力操作部（ボタン）５０５、３軸加速度センサ５０６、３軸角速度センサ５０７、３軸地磁気センサ５０８、ＧＰＳユニット５０９、照度センサ５１０、タイマ５１１、バッテリ５１２、振動部５１３、通信ユニット５１４、音声出力部５１５、音声入力部５１６、スピーカ部５１７、カメラユニット５１８、及びコネクタ５１９を含んで構成される。
【００４６】
制御部５０１は、スマートフォンの各種動作等を制御するプログラムを実行するＣＰＵ（ＳｏＣ（System-on-chip）、ＭＣＵ（Micro_Control_Unit）、又はＦＰＧＡ（Field-Programable_Gate_Array）などを含む）を備える。
【００４７】
記憶部５０２は、ＲＯＭ，ＲＡＭ、及び／又は、ストレージ等から構成され、スマートフォン５０の一般的機能を実現するための各種のアプリケーションプログラムのほか、本発明に係るヘッドトラッキング表示処理や空間ポインティング処理を実現するための各種のアプリケーションプログラムやデータ（例えば、水平１８０度画像データ（図１８参照）、水平３６０度画像データ、半天球画像データ（図１９参照）、全天球画像データ（図８参照）、等々の各種のパノラマ画像データ）が保存される。
【００４８】
ディスプレイ５０３は、液晶ディスプレイ、有機ＥＬディスプレイ、又は無機ＥＬディスプレイ等の表示デバイスを備えており、文字、図形又は記号等が表示される。このディスプレイ５０３は、本発明に関連して、ヘッドマウントディスプレイ（ＨＭＤ）としても機能する。すなわち、このディスプレイ５０３の表示画面に、各種のアプリケーションプログラムを構成するパノラマ画像（例えば、水平１８０度パノラマ画像（図１８参照）、水平３６０度パノラマ画像、半球状パノラマ画像（図１９参照）、全球上パノラマ画像（図８参照）、等々）が所謂ヘッドトラッキング表示手法を利用して表示される。このパノラマ画像は、好ましくは、公知の手法により３Ｄ処理が施される。３Ｄ表示を行う手法の一例としては、例えば、ディスプレイ５０３の横長表示画面を左右に２分割し、それぞれに、視差を有する２つの画像を表示する手法が採用される。
【００４９】
通信ユニット５１４は、外部機器とＬＡＮ又はインターネット等を介して無線通信を行うものである。無線通信規格としては例えば、２Ｇ、３Ｇ、４Ｇ、ＩＥＥＥ８０２．１１、Bluetooth（登録商標）等の規格がある。特に、本発明と関連して、スマートフォン５０は、コントローラ１０との間でBluetooth（登録商標）を介して通信を行う。
【００５０】
スピーカ部５１７は、当該スマートフォンから音楽等を出力するものであり、このスピーカ部５１７は、本発明に関連して、ゲームサウンド等の各種のアプリケーション特有のサウンドを生成するためにも使用される。
【００５１】
３軸加速度センサ５０６は、スマートフォン筐体に働く加速度の方向及び大きさを検出するものであり、３軸角速度センサ５０７はスマートフォン筐体の角度及び角速度を検出するものであり、３軸地磁気センサ５０８は、地磁気の向きを検出するものである。これら３つのセンサ５０６、５０７、５０８によって、本発明における第２のモーションセンサが構成されている。そして、それら３つのセンサ５０６，５０７，５０８の各出力に基づいて、ユーザ４０の頭部４１の姿勢や向きが検出される。なお、各センサ５０６、５０７、５０８の詳細については、先に説明した通りである。
【００５２】
カメラユニット５１８は、例えば、スマートフォン５０の筐体の表面又は裏面に設けられるインカメラ又はアウトカメラ等と接続され、静止画像又は動画像を撮像する際に用いられるものである。カメラユニット５１８は、後述するように、本発明と関連して、ディスプレイ５０３の背面側に設けられたアウトカメラを用いて現実世界の画像を撮像したり、或いは、ディスプレイ５０３と同一の面に設けられたインカメラにより視線画像を取得することにも利用可能である。
【００５３】
音声入力部（マイク等）５１６は、スマートフォン５０を用いて通話等を行う際に音声の入力を行うものである。本発明と関連して、後述するように、音声入力部５１６を介して入力された音声を解析して、スマートフォンやアプリケーションプログラムの種々の操作を行ってもよい。
【００５４】
その他、振動部５１３は、各種アプリケーションプログラム等で用いられる振動部であり、例えば、電磁コイルを利用した振動機構その他各種の振動モータ等で構成することができる。コネクタ５１９は、他の機器との接続に用いられる端子である。当該端子は、ＵＳＢ、ＨＤＭＩ（登録商標）等の汎用的な端子であってもよい。音声出力部５１５は、当該スマートフォンを用いて通話等を行う際に音声出力を行うものである。入力操作部５０４は例えばタッチ方式の入力操作部であり、指、ペン又はスタイラスペン等の接触検知により、各種の入力を行うものである。ＧＰＳ（Gloval Positioning System）ユニット５０９は、スマートフォンの位置を検出する。照度センサ５１０は、照度を検出する。なお、照度とは、光の強さ、明るさ、又は輝度を示す。タイマ５１１は時間の計測を行うものである。なお、当該タイマはＣＰＵ等と一体に設けられていても良い。バッテリ５１２は、充電により、スマートフォンの電源として機能する。
【００５５】
［コントローラの構成］
コントローラ１０の外観を示す斜視図が図６に示されている。同図に示されるように、コントローラ１０は、ボタン配置のためのほぼ水平な上面を有する本体後部１１とボタン配置のためのほぼ垂直な前面を有する本体前部１２とからなる側面視略Ｌ字状の外観形態を有する。本体後部１１は、コントローラを把持する際の握り部としても機能するものである。
【００５６】
本体後部部１１の上面には、それぞれモメンタリタイプの押しボタンスイッチの操作子として機能する３個の押しボタン（中心ボタン１３、左側ボタン１４、右側ボタン１５）が配置されている。本体前部１２の前面には、それぞれモメンタリタイプの押しボタンスイッチの操作子として機能する２個の押しボタン（上側ボタン１６、下側ボタン１７）が配置されている。なお、符号１８は、本体後部部１１の左側面に設けられた電源スイッチとして機能するスライド操作子である。
【００５７】
後に、図７を参照して説明するように、コントローラ１０には、本発明に係る第１のモーションセンサを構成する３軸加速度センサ１００３、３軸角速度センサ１００４、及び３軸地磁気センサ１００５がそれぞれ組み込まれている。そのため、それらのセンサによって、コントローラ１０の位置、姿勢、向き、及び／又は、それらの動きも含めた変化を自在に検知可能とされている。これらのセンサ１００３〜１００５は、コントローラ本体１０に対して一定の物理的関係となるようにして、組み込まれている。
【００５８】
コントローラ１０の電気的ハードウェア構成を示すブロック図が、図７に示されている。同図に示されるように、コントローラ内部の電気回路は、マイクロプロセッサやＡＳＩＣ等で構成されて、コントローラ全体を統括制御する制御部１００１と、Bluetooth（登録商標）等の短距離通信を実現するための通信ユニット１００２と、第１のモーションセンサを構成する３つのセンサ（３軸加速度センサ１００３、３軸角速度センサ１００４、及び３軸磁気センサ１００５）と、記憶部１００７とを含んで構成されている。なお、図において、符号１００６は、コントローラの電源となる充電可能なバッテリである。
【００５９】
上述した３個のボタン（中心ボタン１３、左側ボタン１４、右側ボタン１５）及び２個のボタン（上側ボタン１６、下側ボタン１７）は、それらの操作に連動してオンオフする接点１３ａ〜１７ａを有する。それらの接点のオンオフにより生成されるオンオフ信号は、各種の指令として制御部１００１に読み込まれて各種の演算に供されるほか、必要により、通信ユニット１００２を介して、頭部装着具２０に組み込まれたスマートフォン５０へと短距離通信を介して送出され、スマートフォン側の各種の演算に供される。また、第１のモーションセンサを構成する３つのセンサ（３軸加速度センサ１００３、３軸角速度センサ１００４、及び３軸磁気センサ１００５）の各出力についても、そのまま直接に、あるいは適宜な加工が施されたのち、通信ユニット１００２を介して、スマートフォン５０側へと送信可能とされている。
【００６０】
［ヘッドトラッキング表示処理及び空間ポインティング処理について］
先に説明したように、本発明システムにあっては、少なくとも３軸地磁気センサ１００５を含む第１のモーションセンサが組み込まれたコントローラ１０と、少なくとも３軸地磁気センサ５０８を含む第２のモーションセンサ及びディスプレイ５０３が組み込まれた頭部装着具２０と、第１及び第２のモーションセンサのそれぞれから得られるコントローラ１０及び頭部装着具２０の姿勢情報をローカル座標からワールド座標へと変換すると共に、ワールド座標上の各姿勢情報に基づいて、仮想空間におけるヘッドトラッキング表示処理及び空間ポインティング処理を実行する情報処理部とを備えている。以下に、この点について、図９の座標系概念図及び図１２〜図１５のフローチャートを参照しつつ概略的に説明する。
【００６１】
今仮に、１つのワールド座標空間（Ｘ，Ｙ，Ｚ）上に、スマートフォン（ＨＭＤ）５０とコントローラ（ＣＴＲＬ）１０とが存在し、それらのデバイスにはそれぞれモーションセンサが内蔵されているものと想定する。ここで、モーションセンサは、いずれも、３軸加速度センサと３軸角速度センサと３軸地磁気センサとで構成されている。いずれのデバイスも、基本的な姿勢は、３軸加速度センサと３軸地磁気センサとを用いて計算により求めることができる（図１３のステップ２０１、２０４参照）。
【００６２】
まず、各デバイスに組み込まれた３軸加速度センサと３軸角速度センサとを用いて、スマートフォン（ＨＭＤ）５０の姿勢とコントローラ（ＣＴＲＬ）１０の姿勢とを計算し、それらを各デバイスの基本姿勢とする（図１３のステップ２０１及び２０４、それらの詳細内容である図１４のステップ３０１〜３０３及び３０４〜３０６参照）。
このとき、３軸加速度センサの値から求めた基本姿勢は、プログラム言語によれば、次のように記述される。なお、３軸加速度センサの値はローパスフィルタ及び/又はハイパスフィルタを通して、静止成分と動作成分に分割されており、ここで取得しているのは静止成分のことである。
sensor_pose = Quaternion(-_mAccel.Pose.z, _mAccel.Pose.y, -_mAccel.Pose.x,
_mAccel.Pose.w);
【００６３】
次に、上述の基本姿勢を３軸角速度センサの検知結果を用いて補正することにより、各デバイスを動かしたときの姿勢を求める（図１３のステップ２０２、２０５、及びそれらの詳細内容である図１４のステップ４０１〜４０２、４０３〜４０４参照）。なお、３軸角速度センサは使用せずとも、３軸加速度センサと３軸地磁気センサとがあれば、姿勢制御は可能である。
このとき、前回の姿勢に対して３軸角速度センサによる変化値補正は、次の通りとなる。
Quaternion rotation = this.transform.rotation;
Quaternion qx = Quaternion.AngleAxis(-gyro.RotZ, Vector3.right);
Quaternion qy = Quaternion.AngleAxis(-gyro.RotY, Vector3.up);
Quaternion qz = Quaternion.AngleAxis(gyro.RotX, -Vector3.forward);
q = (qz * qy * qx);
rotation = rotation * q;
Quaternion sensor_pose = clSingleton<clBLESensorManager>.Instance.SenserPose;
this.transform.rotation = Quaternion.Slerp(rotation, sensor_pose, 0.04f);
【００６４】
次に、基本姿勢をワールド座標へ変換するための一連の処理を行う（図１３のステップ２０３、２０６、及びそれらの詳細内容である図１５のステップ５０１〜５０６、５０７〜５１２参照）。上述の一連の処理とは、要するに、３軸加速度センサと３軸地磁気センサとを用いて、各デバイスの磁北方向を３軸地磁気センサから計算することを主眼とするものである。このとき、コントローラ１０の磁北計算は、３軸地磁気センサの成分に傾き情報が含まれているので、加速度から求めた端末の傾きを地磁気センサ情報に補正して、水平な地磁気成分を抽出する。
３軸加速度センサの重力ベクトルは、次の通りである（図１５のステップ５０１、５０７参照。
Vector3 b = Vector3(_mAccel.Gravity.x, _mAccel.Gravity.y, _mAccel.Gravity.z);
b = b.normalized;
垂直下方向のベクトルは次の通りである（図１５のステップ５０２、５０８参照）。
Vector3 a = Vector3(0f, 1f, 0f);
a = a.normalized;
float value = a.x * b.x + a.y * b.y + a.z * b.z;
float gravity_angle = Mathf.Acos (value / a.magnitude * b.magnitude);
Vector3 axis = Vector3.Cross (a, b);
axis = axis.normalized;
Quaternion aq = Quaternion.AngleAxis (-gravity_angle * Mathf.Rad2Deg, axis);
次のようにして、地磁気の軸（mGeom.Z, _mGeom.X, _mGeom.Y）を(0, 1, 0)が上になるように回転する（図１５のステップ５０３、５０９参照）。
Vector3 geom_v = new Vector3(-_mGeom.Z, _mGeom.Y, -_mGeom.X);
geom_v = geom_v.normalized;
次のようにして、加速度の傾きを地磁気の軸と合わせる（図１５のステップ５０４、５１０参照）。
Quaternion gq = Quaternion(-aq.z, -aq.x, aq.y, aq.w);
次のようにして、地磁気のx, y, zを更に分解して水平方向の磁北を計算する（図１５のステップ５０５、５１１参照）。
float m = Mathf.Sqrt(Mathf.Pow(geom.x, 2) + Mathf.Pow(geom.y, 2) +
Mathf.Pow(geom.z, 2));
geom_height = Mathf.Asin(geom.z/m);
地磁気の水平成分から求めた磁北は、次の通りとなる。
geom_height_head = Mathf.Acos(geom.x/(m * Mathf.Cos(geom_height)));
次のようにして、方向と基準姿勢から回転計算することにより、各デバイスの磁北方向と各デバイスの基本姿勢を合成する（図１５のステップ５０６、５１２参照）。この時点で、ワールド空間上の、各オブジェクトの姿勢と向いている方向が分かる。
sensorRotation = q_head * pose;
【００６５】
続いて、図１３に戻って、ワールド座標上に、図９の概念図に示されるように、スマートフォン（ＨＭＤ）５０とコントローラ（ＣＴＲＬ）１０の情報を配置する（図１３のステップ２０７参照）。
【００６６】
続いて、ワールド座標上に、スマートフォン（ＨＭＤ）と同じ位置・傾き姿勢で、カメラのビューポイントを配置する（図１３のステップ２０８参照）。ここで、カメラとは、仮想空間（例えば、図８に示される全球状パノラマ仮想空間）内の所定位置（例えば、中心位置）にあって、仮想空間を撮影する仮想的なカメラであって、その視野に映し出される画像が別途処理にて仮想空間から切り出されて、スマートフォンのディスプレイ（ＨＭＤ）に表示されることにより、いわゆる仮想空間におけるヘッドトラッキング表示（背景表示）が可能となる。
【００６７】
続いて、コントローラ１０の姿勢情報から現在の姿勢の前方向に一定距離のワールド座標を計算する（図１３のステップ２０９参照）。
【００６８】
スマートフォン１０のディスプレイ画面５１に相当するカメラの視野上に上記で計算した終点が存在するとき（図１３のステップ２１０ＹＥＳ）、ワールド座標をカメラのビューポート座標(範囲：0.0〜1.0)に変換する。この２Ｄ座標系の座標を、スマートフォン５０のディスプレイの画面５１上におけるコントローラの照準の２Ｄ座標として利用し、必要に応じて、照準マーク５３を画面５１上に表示することができる（図１３のステップ２１１）。ビューポート座標(範囲：0.0〜1.0)の範囲外の場合は（図１３のステップ２１０ＮＯ）、照準位置はスマートフォンのディスプレイの画面外とし、照準マーク５３を画面上に表示することはない。以上により、いわゆる仮想空間上における空間ポインティングが可能となる。
Vector3 ray_s_pos = gameObject.transform.position;
gunRay.SetPosition (0, ray_s_pos);
Vector3 ray_e_pos = gameObject.transform.forward * kRayLength;
なお、終点位置を現在のカメラのビューポート座標(0.0〜1.0)に変換する処理は、次の通りである。
Vector2 v2 = ViewPortPos (ray_e_pos);
また、ビューポート座標を中心0の座標系に変換して補正する処理は、次の通りである。
。
Vector3 target_pos = _basePos + new Vector3((v2.x-0.5f), (v2.y-0.5f), 0.0f);
さらに、現在位置から計算された次の位置に向けて照準を移動する処理は、次の通りである。
this.transform.position = Vector3.MoveTowards(this.transform.position, target_pos, 0.5f);
【００６９】
なお、図１３〜図１６に示された処理は、仮想空間におけるヘッドトラッキング表示処理及び仮想空間における空間ポインティング処理に主眼が置かれているため、アプリケーションプログラム固有の動作（照準と標的との照合一致後のイベント内容等々）については省略されていることを注記する。
【００７０】
［照準方向校正処理について］
次に、本発明の要部であるところの照準方向校正処理について説明する。上述の情報処理システムによれば、第１のモーションセンサを介して検知されるコントローラ１０の姿勢は、ローカル座標値からワールド座標値へと変換されたのち、その指し示す方向の判別に利用されるため、所定の更新処理（図１３のステップ２０５、及びそれらの詳細内容である図１４のステップ４０３〜４０４参照）により、その時々の姿勢変化分が現在姿勢に正しく反映されている限り、コントローラの姿勢により指し示したつもりの照準方向とモーションセンサを介して指し示される（推定される）照準方向との間には、原理的に、大きな感覚的な誤差は生じない筈である。
【００７１】
しかしながら、コントローラ１０に組み込まれる第１のモーションセンサを構成する３軸地磁気センサ（図７の符号１００５参照）には、製品毎に磁北検知特性のバラツキが少なからず存在するほか、周囲の温度等の環境条件によっても磁北検知特性は少なからず変動することから、この種の情報処理システムにあっても、上述した３軸地磁気センサの磁北検知特性のバラツキや変動に起因して、コントローラで指し示したつもりの照準方向とモーションセンサを介して検知される照準方向との間に少なからず感覚的な誤差を生ずることが認められ、これにより、所謂照準の狂いが生じて操作者は違和感を覚える。
【００７２】
そこで、本発明者等は、上述の製品毎の磁北検知特性のバラツキについては、アプリケーションプロクラムの実行開始時に所定の校正処理を実行可能とすることにより、また周囲温度等の環境条件による磁北検知特性の経時的な変化については、アプリケーションプログラムの実行中の任意の時点で所定の校正処理を実行可能とすることにより、これらの問題を解決している。
【００７３】
［アプリケーションプロクラム実行開始時の校正処理］
アプリケーションプロクラム実行のための準備作業を示すフローチャートが、図１２に示されている。同図に示されるように、コントローラ１０とスマートフォン５０と頭部装着具２０との三者で構成される情報処理システムにおいて、任意のアプリケーションプログラム（ヘッドトラッキング表示処理及び空間ポインティング処理を含む）を実行するためには、ユーザは、次のような準備作業を行う。
【００７４】
すなわち、ユーザは、先ず、スマートフォン５０とコントローラ１０との間の通信設定（例えば、Bluetooth（登録商標）通信の設定）を行う（ステップ１０１）。続いて、ユーザは、スマートフォン５０上で、予めインストールされたアプリケーションプログラムの選択操作を行って、当該プログラムを起動させる（ステップ２０２）。続いて、ユーザは、図３に示される組込手順にしたがって、当該スマートフォン５０を頭部装着具２０に組み込む（ステップ１０３）。最後に、ユーザは、スマートフォン５０が組み込まれた頭部装着具２０を頭部に装着する。
【００７５】
以上の準備作業が終了すると、図１３〜図１５に示される一連の処理が実行状態となり、第１のモーションセンサを介して推定されるコントローラ１０の指し示す方向の基準点と第２のモーションセンサを介して推定される頭部装着具２０の指し示す方向の基準点とが整合するように両者の関係を校正する校正処理が実行される。この校正処理は、この例にあっては、開始時校正処理（ステップ２１２）として実行される。
【００７６】
開始時校正処理（ステップ２１２）の詳細フローチャートが、図１６に示されている。同図において、処理が開始されると、先ず、校正済みフラグの状態がＯＮであるか否かの判定が行われる（ステップ６０１）。この校正済みフラグは、図示しないイニシャライズ処理にて、予めＯＦＦに設定されている。そのため、判定結果は否定され（ステップ６０１ＮＯ）、続いて、ユーザに校正のための操作方法を案内するための操作案内処理（ステップ６０２）が実行される。この操作案内処理（ステップ６０２）は、ユーザが所定のトリガー操作を実行するまで（ステップ６０３ＮＯ）、継続的に実行される。
【００７７】
操作案内は、スマートフォン５０のディスプレイ画面５１上に所定の案内表示（文字、記号、図形、文章、等々）を行ったり、スマートフォン５０のスピーカ部５１７から所定の案内音声を流したり、さらには、案内表示と案内音声との双方を実行する等々、様々な方法にて実現することができる。
【００７８】
案内表示の内容としては、例えば、コントローラ１０の姿勢を介して指し示されるべき仮想空間上の標的方向（例えば、画面中心に向かう方向）を示す標的マーク、コントローラ１０のワールド座標上の姿勢情報に基づいて指し示される仮想空間上の照準方向を示す照準マーク、「コントローラを画面中心に向けた状態でトリガーボタンを押してください」と言った操作案内文、等々を挙げることができる。案内音声についても同様であって、「コントローラを画面中心に向けた状態でトリガーボタンを押してください」と言った操作案内音声等々を挙げることができる。
【００７９】
アプリケーションプログラム開始時の初期画面（すなわち、案内表示の一例）の説明図が、図１０に示されている。この例にあっては、表示画面５１上には、コントローラ１０にて指し示されるべき標的方向を示す標的マーク５２と、コントローラ１０に組み込まれるモーションセンサ（３軸加速度センサ１００３、３軸角速度センサ１００４、３軸地磁気センサ１００５）を介して検知されるコントローラ１０の姿勢に基づいて決定されるコントローラ１０の照準方向を示す照準マーク５３とが表示されている。
【００８０】
この例にあっては、標的方向としては画面中心に向かう方向が選ばれており、そのため、標的マーク５２は、表示画面５１の上下左右の中心位置に表示されている。また、照準マーク５３は、コントローラ１０の姿勢乃至向きに応じて移動するものであって、図示例における照準マーク５３は、コントローラ１０が画面中心位置に照準を合わせたときの状態を示している。図から明らかなように、コントローラ１０が画面中心位置にある標的マーク５２に照準を合わせているとき、照準マーク５３は画面中心位置よりもやや右上にずれた位置に表示されている。これは、コントローラが指し示したつもりの照準方向とコントローラ内のモーションセンサ（３軸地磁気センサを含む）を介して指し示される照準方向との間に誤差が存在することを意味している。この誤差は、コントローラ内１０の３軸地磁気センサ１００５やスマートフォン５０内の３軸地磁気センサ５０８の製品毎の磁北検知特性のバラツキ等に起因するものと考えられる。
【００８１】
このような状態において、ユーザは、図１１に示されるように、頭部装着具２０を正面に向けかつコントローラ１０を画面５１の中心（すなわち、標的マーク５２の位置）に向けた状態において、所定のトリガー操作を行う。
【００８２】
なお、頭部装着具２０を頭部に装着したユーザは、表示画面５１上の標的マーク５２は視認できるものの、自分の手元にあるコントローラ１０の姿勢や向きを視認することはできない。しかし、個人差はあるものの、一般に、人は、経験的に培った体感を通じて、無意識のうちに、手元のコントローラ１０の姿勢を変えることで、コントローラ１０を表示画面５１上の標的マーク５２に向ける（すなわち、狙いを定める）ことができる。
【００８３】
所定のトリガー操作としては、コントローラ１０に備えられた５つのボタン１３〜１７のうちの１つ又は２つ以上の押下（同時押下）又は押下時間等々を適宜に組み合わせることにより任意に設定することができる。
【００８４】
トリガー操作が行われると、第１のモーションセンサ（１００３〜１００５）を介して検知されるワールド座標上の基本姿勢から導き出されるコントローラ１０の指し示す方向（θ１，φ１）と第２のモーションセンサ（５０６〜５０８）を介して検知されるワールド座標上の基本姿勢から導き出される頭部装着具（スマートフォン）２０の指し示す方向（θ２，φ２）との差分を補正値として取得する補正値取得処理（ステップ６０４）が実行される。具体的には、補正値取得処理（ステップ６０４）としては、例えば、照準位置SIGHT_pos（図１３のステップ２０８参照）とカメラ視野Cam_view（図１３のステップ２１０）の中心位置との差を補正値として記憶（取得）するようにしてもよい。なお、これは補正値の単なる一例に過ぎない。より一般的に言えば、補正値取得処理（ステップ６０４）としては、要するに、上記の標的方向と照準方向とをそれぞれ代表するために演算上使用される何らかの２つの情報に着目してその差を補正値として取得すればよいことは、当業者であれば容易に理解されるであろう。
【００８５】
トリガー操作が行われるのは、頭部装着具２０が正面に向けられ、かつコントローラ１０も正面（画面中心）に向けられた状態であるから、本来、コントローラ１０の推定向き（θ１，φ１）と頭部装着具２０の推定向き（θ２，φ２）とは一致する筈であるから、それらの差分こそが、いわゆる照準の狂いに相当するのである。
【００８６】
補正値取得処理（ステップ６０４）が終了すると、続いて、補正処理（ステップ６０５）が実行される。この補正処理（ステップ６０５）においては、コントローラ１０及び／又は頭部装着具２０のモーションセンサを介して指し示される推定方向に対して、以後、補正値を加算又は減算することにより、それらの指し示す方向を補正する。これにより、コントローラ１０及び頭部装着具２０の各推定方向の基準点が整合することとなるため、コントローラ１０の姿勢を介して指し示したつもりの照準方向とコントローラ１０のモーションセンサを介して指し示される照準方向とを、３軸地磁気センサの検知特性のバラツキや変動に拘わらず感覚的に一致させて、照準の狂いによる操作者の違和感を解消することができるのである。
【００８７】
続いて、校正済みフラグの内容をＯＮに設定したのち（ステップ６０６）、処理は終了する。以後の実行サイクルにおいては、ステップ６０１において校正済みフラグはＯＮと判定されるため（ステップ６０１ＹＥＳ）、操作案内処理（ステップ６０２）、補正値取得処理（ステップ６０４）、及び補正処理（ステップ６０５）はスキップされるから、実行されることはない。なお、この補正処理（ステップ６０５）においては、上述の補正値を用いて、コントローラ１０並びに頭部装着具（スマートフォン）２０の基本姿勢も補正される。
【００８８】
以後、補正後の基本姿勢を用いて一連の処理（ステップ２０５〜２１１）が実行される結果、照準位置SIGHT_posの狂いは修正されるから、コントローラ１０の姿勢を介して指し示される実空間上の標的方向とコントローラ１０のワールド座標上の姿勢情報に基づいて指し示される仮想空間上の照準方向とを、３軸地磁気センサの検知特性の製品毎のバラツキに拘わらず、正確に一致させることが可能となるのである。
【００８９】
［アプリケーションプログラムの任意の時点で実行される照準方向校正処理］
先に説明したように、コントローラ１０の照準に狂いが生ずる原因には、周囲温度等の環境条件に起因する３軸地磁気センサ１００５の経時的変化の場合もあることが認められている。この場合、使用開示時には狂いはなくとも、使用中次第に狂いが生ずるから、上述の開始時校正処理だけでは不十分である。この問題は、下記の開始時校正処理により解決することができる。
【００９０】
開始後校正処理の詳細フローチャートが、図１７に示されている。この処理は、予め決められたトリガー操作により任意の時点で開始される。トリガー操作としては、例えば、コントローラ１０に備えられた５個のボタン１３〜１７の中で特定の２個のボタンを同時に押下しかつ長押しする操作が選ばれている。このようなボタン操作は、通常時には、極めて希である。
【００９１】
同図において、上述のトリガー操作により割り込みにより処理が開始されると、先ず、操作案内処理（ステップ７０１）が実行されて、図１０に示される画面と同様な内容の画面が表示される。
【００９２】
この状態において、ユーザは、コントローラ１０を標的マーク５２に向けたまま、長押し状態を継続する。すると、タイマ起動処理（ステップ７０２）、ボタン押し継続判定処理（ステップ７０３）、及びタイムアップ判定処理（ステップ７０４）が実行される結果、予め想定された２個のボタンの同時長押しが行われた場合に限り（ステップ７０３ＹＥＳ、７０４ＹＥＳ）、補正値取得処理（ステップ７０５）が実行される。
【００９３】
なお、この補正値取得処理（ステップ７０５）の内容は、先に図１６を参照しつつ説明した補正値取得処理（ステップ６０４）と同様であって、第１のモーションセンサ（１００３〜１００５）を介して検知されるワールド座標上の基本姿勢から導き出されるコントローラ１０の指し示す方向（θ１，φ１）と第２のモーションセンサ（５０６〜５０８）を介して検知されるワールド座標上の基本姿勢から導き出される頭部装着具（スマートフォン）２０の指し示す方向（θ２，φ２）との差分を補正値として取得する補正値取得処理（ステップ６０４）が実行される。具体的には、補正値取得処理（ステップ６０４）としては、例えば、照準位置SIGHT_pos（図１３のステップ２０８参照）とカメラ視野Cam_view（図１３のステップ２１０）の中心位置との差を補正値として記憶（取得）するようにしてもよい。なお、これは補正値の単なる一例に過ぎない。より一般的に言えば、補正値取得処理（ステップ６０４）としては、要するに、上記の標的方向と照準方向とをそれぞれ代表するために演算上使用される何らかの２つの情報に着目してその差を補正値として取得すればよいことは、当業者であれば容易に理解されるであろう。
【００９４】
これにより、コントローラ１０及び頭部装着具２０の各推定方向の基準点が整合することとなるため、コントローラ１０の姿勢を介して指し示したつもりの照準方向とコントローラ１０のモーションセンサを介して指し示される照準方向とを、３軸地磁気センサの検知特性のバラツキや変動に拘わらず感覚的に一致させて、照準の狂いによる操作者の違和感を解消することができるのである。
【００９５】
補正値取得処理（ステップ７０５）が終了すると、以後、先ほどと同様にして、補正処理（ステップ７０６）が実行される。すなわち、この補正処理（ステップ６０５）においては、コントローラ１０及び／又は頭部装着具２０のモーションセンサを介して指し示される推定方向に対して、以後、補正値を加算又は減算することにより、それらの指し示す方向を補正する。これにより、コントローラ１０及び頭部装着具２０の各推定方向の基準点が整合することとなるため、コントローラ１０の姿勢を介して指し示したつもりの照準方向とコントローラ１０のモーションセンサを介して指し示される照準方向とを、３軸地磁気センサの検知特性のバラツキや変動に拘わらず感覚的に一致させて、照準の狂いによる操作者の違和感を解消することができるのである。
【００９６】
上述の開始後校正処理によれば、情報処理システムの使用開始後、周囲温度等の環境条件によりコントローラ１０の照準に狂いが生じたと認められる場合には、直ちに、所定のトリガー操作（例えば、２つのボタンの同時長押し操作）を行って、実空間上の照準方向と仮想空間上の照準方向とが一致するように照準校正を行うことができる。
【００９７】
なお、以上の操作案内処理（ステップ６０２、７０１）では、標的マーク５２と照準マーク５３との双方を表示する例を示したが、これらは必須のものではない。例えば、標的マーク５２は表示するものの、照準マーク５３の表示は省略することもできる。さらに、標的位置が画面の中心と決まっているのであれば、誰でも画面中心は容易に認識できるから、標的マーク５２の表示ついても省略することができる。
【産業上の利用可能性】
【００９８】
本発明によれば、前記空間ポインティング処理に含まれる校正処理の作用により、コントローラ及び頭部装着具の各推定方向の基準点が整合することとなるため、コントローラの姿勢を介して指し示したつもりの照準方向とコントローラのモーションセンサを介して指し示される照準方向とを、３軸地磁気センサの検知特性のバラツキや変動に拘わらず感覚的に一致させて、照準の狂いによる操作者の違和感を解消することができる。
【符号の説明】
【００９９】
１      情報処理システム
１０    コントローラ
１１    本体後部
１２    本体前部
１３    中央ボタン
１４    左側ボタン
１５    右側ボタン
１６    上側ボタン
１７    下側ボタン
１８    スライド操作子
２０    頭部装着具
２１    頭周ベルト
２２    頭頂ベルト
２３    本体
２４    開口
２５    蓋板
２６    保持具
２７ａ    雌型留め具
２７ｂ    雄型留め具
２８    仕切り板
２９    レンズ
４０    人
４１    頭部
４３    目
４４    手
５０    スマートフォン
５１    画面
５２    標的マーク
５３    照準マーク
５０１    制御部
５０２    記憶部
５０３    ディスプレイ
５０４    入力操作部（タッチパネル）
５０５    入力操作部（ボタン）
５０６    ３軸加速度センサ
５０７    ３軸角速度センサ
５０８    ３軸地磁気センサ
５０９    ＧＰＳ
５１０    照度センサ
５１１    タイマ
５１２    バッテリ
５１３    振動部
５１４    通信ユニット
５１５    音声出力部
５１６    音声入力部
５１７    スピーカ部
５１８    カメラユニット
５１９    コネクタ
【図１】
2018037034.tif 000003
【図２】
2018037034.tif 000004
【図３】
2018037034.tif 000005
【図４】
2018037034.tif 000006
【図５】
2018037034.tif 000007
【図６】
2018037034.tif 000008
【図７】
2018037034.tif 000009
【図８】
2018037034.tif 000010
【図９】
2018037034.tif 000011
【図１０】
2018037034.tif 000012
【図１１】
2018037034.tif 000013
【図１２】
2018037034.tif 000014
【図１３】
2018037034.tif 000015
【図１４】
2018037034.tif 000016
【図１５】
2018037034.tif 000017
【図１６】
2018037034.tif 000018
【図１７】
2018037034.tif 000019
【図１８】
2018037034.tif 000020
【図１９】
2018037034.tif 000021
【図２０】
2018037034.tif 000022