(57)【特許請求の範囲】
【請求項１】
自装置が存在する高さに対応する情報を取得する高さ情報取得手段と、
少なくとも前記高さ情報取得手段によって取得される情報の変化に基づいて、前記自装置が１以上の階数を有する建造物において１階分相当の上昇あるいは降下をしたことを検出する検出手段と、
前記検出手段によって検出された前記１階分相当の上昇あるいは降下の間に、前記高さ情報取得手段によって取得された情報に基づいて、前記自装置が存在する１以上の階数を有する建造物の１階分相当の高さを推定する推定手段と、
前記自装置が移動する方向に対応する情報を取得する方向情報取得手段と、
を備え、
前記検出手段は、前記高さ情報取得手段によって取得される情報の変化に基づいて、前記自装置が上昇あるいは降下を開始したとみなされる第１時点を特定し、前記第１時点以降に、さらに前記方向情報取得手段によって取得される情報の変化に基づいて、前記自装置が前記１階分相当の高さの上昇あるいは降下を完了したとみなされる第２時点を特定し、前記第１時点から前記第２時点までを前記１階分相当の上昇あるいは降下として検出し、
前記推定手段は、前記第１時点において前記高さ情報取得手段によって取得された情報と、前記第２時点において前記高さ情報取得手段によって取得された情報とに示される高さの差分を、前記１階分相当の高さとして推定することを特徴とする情報処理装置。
【請求項２】
前記検出手段は、前記高さ情報取得手段によって取得される情報の変化に基づいて、少なくとも、前記自装置が上昇あるいは降下を開始した第１状態にあることと、前記自装置が上昇あるいは降下を終了した第２状態にあることとを特定する状態特定手段を更に備え、
前記検出手段は、前記状態特定手段によって、前記自装置が前記第１状態にあると特定された時点を前記第１時点、前記第１時点の後、最初に前記自装置が前記第２状態にあると特定された時点を前記第２時点として特定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記推定手段は、前記第１時点において前記高さ情報取得手段によって取得された情報と、前記第２時点において前記高さ情報取得手段によって取得された情報とに示される高さの差分が、所定の高さの範囲に含まれる場合に、前記差分を前記１階分相当の高さとして推定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記検出手段は、前記第１時点以降に、前記方向情報取得手段によって取得される情報に基づいて、前記自装置が移動する方向が連続して一定の角度変化している場合は、前記高さ情報取得手段によって取得される情報の変化に基づいて、前記第２時点を特定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記検出手段は、前記第１時点以降に、前記方向情報取得手段によって取得される情報が、前記自装置が螺旋階段を上昇あるいは降下していることを示す場合は、前記高さ情報取得手段によって取得される情報の変化に基づいて、前記第２時点を特定することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記検出手段は、前記第１時点において開始された前記自装置の上昇あるいは降下の方向と、現在の上昇あるいは降下の方向とが一致しない場合は、前記第２時点の検出を行わないことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記高さ取得手段は、気圧センサが検知する気圧の大きさを示す情報を取得する手段であることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記方向情報取得手段は、地磁気センサが検知する値に基づく絶対方位を示す情報を取得する手段であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項９】
前記高さ取得手段は、ＧＰＳ衛星から発せられる電波に基づいて、前記自装置が存在する高さに対応する位置情報を取得する手段であることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項１０】
更に、前記推定手段によって推定された前記建造物における１階分相当の高さと、前記高さ取得手段によって取得された前記自装置が存在する高さに対応する情報と、前記建造物における基準の高さに対応する情報とに基づいて、前記建造物において前記自装置が存在する階数を推定する手段を備えることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１１】
情報処理装置の制御方法であって、
高さ取得手段により、前記情報処理装置が存在する高さに対応する情報を取得する高さ情報取得工程と、
検出手段により、少なくとも前記高さ情報取得工程において取得される情報の変化に基づいて、前記情報処理装置が１以上の階数を有する建造物において１階分相当の上昇あるいは降下をしたことを検出する検出工程と、
推定手段により、前記検出工程において検出された前記１階分相当の上昇あるいは降下の間に、前記高さ情報取得工程において取得された情報に基づいて、前記情報処理装置が存在する１以上の階数を有する建造物の１階分相当の高さを推定する推定工程と
方向情報取得手段により、前記情報処理装置が移動する方向に対応する情報を取得する方向情報取得工程と、
を備え、
前記検出工程では、前記情報処理装置が存在する高さに対応する情報の変化に基づいて、前記情報処理装置が上昇あるいは降下を開始したとみなされる第１時点を特定し、前記第１時点以降に、さらに前記前記情報処理装置が移動する方向に対応する情報の変化に基づいて、前記情報処理装置が前記１階分相当の高さの上昇あるいは降下を完了したとみなされる第２時点を特定し、前記第１時点から前記第２時点までを前記１階分相当の上昇あるいは降下として検出し、
前記推定工程では、前記第１時点において取得された前記情報処理装置が存在する高さに対応する情報と、前記第２時点において取得された前記情報処理装置が存在する高さに対応する情報とに示される高さの差分を、前記１階分相当の高さとして推定することを特徴とする情報処理装置の制御方法。
【請求項１２】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１に記載の情報処理装置の各手段として機能させるプログラム。
【請求項１３】
請求項１２に記載のプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサを用いて高さ情報を推定する技術に関する。
【背景技術】
【０００２】
センサ値を取得し、気圧値や標高を用いて建造物の高さを求めるための基準となる階の高度（以下、基準高さと呼ぶ）からユーザがいる階までの高度（以下、相対高度と呼ぶ）を求め、ユーザが存在する階の階数を推定するための技術が提案されている。
【０００３】
特許文献１では、気圧計やＧＰＳ信号から得られる高さに関する情報を用いて、建造物内にいるユーザの現在存在する階の階数を算出し表示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２８６４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
気圧センサやＧＰＳ信号を用いて、建造物内にいるユーザの現在存在する階の階数を求めるためには、建物内の各フロアの１階あたりの高さ（以下、階高と呼ぶ）を取得する必要がある。特許文献１では、建物の階高情報を予め情報処理装置に記憶させ、ユーザが現在存在する階の階数を求める際に情報処理装置に記憶してある階高情報を取得する。しかし、階高は建物によって、また、同一の建造物でもフロアによって異なるため、すべての建造物について階高を調査し、階高データを予め記憶装置に記憶させておくことが難しいという問題がある。また、ユーザがフロアを移動する度に階高を明示的に入力させる方法があるが、ユーザに煩わしく感じさせる問題がある。
【０００６】
本発明では、このような事情を鑑みてなされたものであり、予め建造物の情報を記憶させたり、ユーザに明示的に指示させることなく、建造物の１階分の高さに対応する情報を取得可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するため、自装置が存在する高さに対応する情報を取得する高さ情報取得手段と、少なくとも前記高さ情報取得手段によって取得される情報の変化に基づいて、前記自装置が１以上の階数を有する建造物において１階分相当の上昇あるいは降下をしたことを検出する検出手段と、前記検出手段によって検出された前記１階分相当の上昇あるいは降下の間に、前記高さ情報取得手段によって取得された情報に基づいて、前記自装置が存在する１以上の階数を有する建造物の１階分相当の高さを推定する推定手段と、前記自装置が移動する方向に対応する情報を取得する方向情報取得手段と、を備え、前記検出手段は、前記高さ情報取得手段によって取得される情報の変化に基づいて、前記自装置が上昇あるいは降下を開始したとみなされる第１時点を特定し、前記第１時点以降に、さらに前記方向情報取得手段によって取得される情報の変化に基づいて、前記自装置が前記１階分相当の高さの上昇あるいは降下を完了したとみなされる第２時点を特定し、前記第１時点から前記第２時点までを前記１階分相当の上昇あるいは降下として検出し、
前記推定手段は、前記第１時点において前記高さ情報取得手段によって取得された情報と、前記第２時点において前記高さ情報取得手段によって取得された情報とに示される高さの差分を、前記１階分相当の高さとして推定することを特徴とする情報処理装置。
【発明の効果】
【０００８】
予め建造物の情報を記憶させたり、ユーザに明示的に指示させることなく、建造物の１階分の高さに対応する情報を取得可能とする。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置のハードウェア、及び機能構成を表す図
【図２】情報処理装置が実行する階高推定処理の流れを表すフローチャート
【図３】ユーザが情報処理装置１０１を運ぶ状況の一例を表す模式図
【図４】情報処理装置が実行する階高推定処理の流れを表すフローチャート
【図５】ユーザが情報処理装置１０１を運ぶ状況一例を表す模式図
【図６】（ａ）ユーザが情報処理装置１０１を運ぶ状況一例を表す模式図と（ｂ）検知される方位の例を示す表
【図７】（ａ）情報処理装置の機能構成を表す図と（ｂ）階数推定処理の流れを表すフローチャート
【図８】ユーザが情報処理装置１０１を運ぶ状況一例を表す模式図
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の好適な実施例について説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１１】
＜第１の実施形態＞
第１の実施形態では、情報処理装置を持つユーザの昇降を、センサを利用して検知し、それに基づいて、ユーザが存在する建造物の１階分の高さ（以下では階高という）を推定する。特に、ＧＰＳ信号によって高さ方向の情報を取得することが困難となる建造物の屋内において、気圧センサを利用して階高を特定する例を説明する。
【００１２】
図１（ａ）は、情報処理装置１０１のハードウェア構成を示す構成図である。情報処理装置１０１は、例えばスマートフォンなどユーザによって持ち運ばれる端末であり、各種センサが搭載されている。ＣＰＵ１０２は、中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、各種処理のための演算や論理判断などを行い、システムバス１１２に接続された各構成要素を制御する。この情報処理装置１０１には、プログラムメモリとデータメモリを含むメモリが搭載されている。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３は、データメモリであり、ＣＰＵ１０２の上記プログラムのワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０４は、プログラムメモリであって、後述する各種処理手順を含むＣＰＵによる制御のためのプログラムを格納する。なお、情報処理装置１０１に接続された外部記憶装置などからＲＡＭ１０３にプログラムをロードすることで、プログラムメモリを実現しても構わない。気圧センサ１０５は、情報処理装置１０１に係る気圧の大きさを検知し、気圧値を出力するデバイスである。本実施形態では、気圧センサ１０５が検知する気圧値に基づいて情報処理装置１０１が存在する高さを推定する。つまり、気圧値を高さの情報として扱う。ただし、本実施形態では少なくとも気圧センサ１０５を備えれば、さらに加速度センサを備えて情報処理装置１０１に係る重力加速度の変化を検知する等、複数のセンサのセンサ値を総合的に用いて高さの推定に利用することもできる。ＧＰＳレシーバ１０６は、ＧＰＳ衛星から発せられる電波を受信し、ＧＰＳ情報に基づいて情報処理装置１０１が存在する現在地の緯度と経度を取得するデバイスである。記憶装置１０７は、本実施形態に係るデータやプログラムを記憶しておくためのハードディスクドライブや、インタフェースで接続された外部記憶装置である。外部記憶装置は、例えば、メディア（記録媒体）と、当該メディアへのアクセスを実現するための外部記憶ドライブとで実現することができる。このようなメディアとしては、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ、ＭＯ、フラッシュメモリ等が知られている。また、外部記憶装置は、ネットワークで接続されたサーバ装置などであってもよい。表示部１０８は、例えば液晶ディスプレイであって、表示領域に各種アプリケーションの実行画面や情報処理装置１０１による処理結果を表示させるデバイスである。また表示部１０８は、タッチ対象領域に対するユーザの操作情報を取り込むためのタッチセンサ等からなるポインティングデバイスと、表示領域に表示出力を行う表示画面を兼ねたタッチパネルディスプレイであってもよい。地磁気センサ１０９は、地磁気の検出に基づいて絶対方位（東西南北）に対して情報処理装置１０１が向けられた方位、あるいは情報処理装置１０１が移動している方位を検知する地磁気センサである。
【００１３】
図１（ｂ）は、第１の実施形態における情報処理装置１０１の機能構成を表すブロック図である。各機能部は、ＣＰＵ１０２が、ＲＯＭ１０４に格納されたプログラムをＲＡＭ１０３に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、上記ＣＰＵ１０２を用いたソフトウェア処理の少なくとも一部の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。また、保持部２０８は記憶装置１０７の機能部である。以下、各機能部を説明する。
【００１４】
高さ情報取得部１１１は、気圧センサ１０５から通知された気圧の大きさを示す情報に基づいて、ユーザの現在位置（すなわち自装置の現在位置）での気圧値及び気圧値の変化を取得する。本実施形態では、気圧値を高さに対応する情報として処理する。ただし、気圧値から高さに変換する処理を加えても構わない。高さ情報取得部１１１は、センサから得た気圧値をＲＡＭ１０３に保持し、気圧値の変化を履歴として蓄積する。
【００１５】
状態特定部１１２は、高さ情報取得部１１１によって蓄積された気圧値の履歴に基づいて、少なくとも、自装置が上昇あるいは降下を開始した状態、と終了した状態を含む情報処理装置の状態を特定する。なお、以下では、上昇あるいは降下のいずれかを示す場合、単に昇降という。状態特定部１１２は、より具体的には、まず、ＲＡＭ１０３に蓄積された情報のうち、現在時刻から所定時間遡った期間（直前期間）の間の、気圧変化量と、水平移動距離を取得する。そして、取得した気圧変化量を水平移動距離で除算することで、気圧変化の勾配を算出し、算出した勾配の絶対値が予め定められた閾値以上であるか否かを判定する。閾値以上であると判定される場合は、自装置に高さ方向の移動がある、すなわち自装置が昇降したことが示され、閾値未満であれば、自装置は高さ方向には移動していない、すなわち自装置が昇降していないことが示される。直前期間において、昇降が無い状態から昇降がある状態へと遷移し、かつ、現在時刻に置いて昇降が検出され続けている場合、状態特定部１１２は、自装置が昇降を開始した状態であると特定する。直前期間において、昇降がある状態から昇降がない状態へと遷移し、かつ、現在時刻に置いて昇降が無い場合、状態特定部１１２は、自装置が昇降を終了した状態であると特定する。さらに、直前時間において継続して昇降があり、かつ、現在時刻においても昇降が検出され続けている場合は昇降途中の状態、直前期間空継続して現在時刻においても昇降が無い場合は平坦な移動中の状態であるなどの状態を区別して特定しても良い。ただし第１の実施形態では、少なくとも自装置が昇降を開始した状態を第１状態、自装置が昇降を終了した状態を第２状態として区別可能であればよい。
【００１６】
検出部１１３は、少なくとも高さ情報取得部１１１によって検出された気圧値の変化に基づいて、自装置が１以上の階数を有する建造物において１階分相当の上昇あるいは降下をしたことを検出する。第１の実施形態では、ＲＡＭ１０３に保持された気圧値の変化に基づいて、自装置が昇降を開始した第１状態にあると特定された時点より後で、最初に自装置が昇降を終了した第２状態にあると特定された時点までを１階分相当の昇降として検出する。本実施形態では、ＲＡＭ１０３に保持されている履歴情報に基づいて、検出した１階分相当の昇降の開始時刻（第１の状態が特定された第１時点）と終了時刻（第２の状態が特定された第２時点）を特定し、階高推定部１１４に通知する。
【００１７】
階高推定部１１４は、ＲＡＭ１０３に保持された気圧値の情報のうち、検出部１１３によって特定された時刻に取得された値を取得し、その差分から、階高を算出する。本実施形態では一例として、下記の式１を利用して階高を算出する。ここで、Ｈは階高、Ｐ１は昇降開始地点における気圧値、Ｐ２は昇降終了地点における気圧値、ｇは重力加速度、Ｒは気体定数、Ｔは昇降開始地点から昇降終了地点までの平均温度である。
【００１８】
【数１】
0006482258.tif 000002
【００１９】
なお、気圧値の差分をそのまま階高の高さに対応する情報として扱う事も可能である。取得された階高の情報は、ＲＡＭ１０３に保持する、あるいは、外部サーバや、階高を利用した処理を実行するアプリケーションなどに通知される。階高を利用した処理を実行するアプリケーションとは、例えば、１以上の階数を有する建造物において自装置が存在するフロア階数を特定して、該フロアでのナビゲーションを提供するアプリケーションなどが挙げられる。また、推定された階高情報をサーバで保持する場合には、階高推定部１１４あるいは階高推定部１１４がインターネットを通じてサーバに通信し、サーバに階高情報を送信する。
【００２０】
なお、階高の高さに対応する情報は、気圧でなく距離で表してもよい。さらに、階高の情報に加えて、階高に基づいて推定される、自装置が存在する建造物のフロア階数や、ＧＰＳ信号に基づいて特定可能である建造物の名称や建造物の位置情報など建造物に関する情報を階高情報に対応付けて記憶しても良い。
【００２１】
図２は第１の実施形態における情報処理装置１０１におけるフローチャートである。本実施形態では、情報処理装置１０１の起動時にこのフローチャートの処理が開始され、その後、終了が指示されるまで所定周期で繰り返される。ただし、階高を利用するアプリケーションが起動され、本実施形態に係る階高推定機能が呼び出されたことに応じて、図３のフローチャートの処理が開始されてもよい。あるいは、ＧＰＳ信号に基づいて、情報処理装置１０１が建物内に侵入したことが検知された時や、あるいはＷＥＢブラウザにおいて当該機能を呼び出すスクリプトが呼び出された時に、処理を開始するとしてもよい。
【００２２】
ステップＳ２０１において、高さ情報取得部１１１は、気圧センサ１０５から通知される情報に基づいて、自装置が存在する高さに対応する気圧値を取得する。そしてＲＡＭ１０３に取得した気圧値を保持する。
【００２３】
ステップＳ２０２において、状態特定部１１２は、現在の自装置の状態が、昇降を開始した第１状態であるか否かを判定する。昇降を開始した第１状態である判定された場合には、ステップＳ２０３に進む。第１状態でなければステップＳ２０４に進む。
【００２４】
ステップＳ２０３において、状態特定部１１２は、昇降開始地点の気圧値（第１状態が特定された第１の時点で最後に検出された気圧値）を取得し、昇降開始時の高さに対応する情報として気圧値をＲＡＭ１０３に保持する。
【００２５】
ステップＳ２０４において、状態特定部１１２は、現在の自装置の状態が昇降を終了した第２状態であるか否かを判定する。昇降を終了した第２状態と判定された場合には、昇降終了時の気圧値を取得し、ステップＳ２０５に進む。第２状態でないと判定される場合には処理を終了する。そして所定周期でステップＳ２０１からの処理が繰り返される。
【００２６】
ステップＳ２０５において、階高推定部１１４は、ステップＳ２０３で保持された昇降開始時点での気圧値と、ステップＳ２０４において取得された昇降終了時の気圧値とから、自装置が存在する建造物の階高を算出により推定する。本実施形態では、上述した式１を用いて、階高を推定する。なお、このとき算出された値が建造物の１階分相当の高さとして妥当か否かを判定する処理を加えてもよい。例えば、階高として算出された値が１階分相当の高さが２．４メートル以上に相当するかを判定し、判定結果が偽である場合には、処理を中止し、やり直してもよい。
【００２７】
ステップＳ２０６において、階高推定部１１４は、ＲＡＭ１０３に算出された階高を階高情報として保持する。ただし、距離の単位で示される情報に変換するなど、利用目的に適合させる各種処理を加えても良い。なお、上述した一連の処理において、ＲＡＭ１０３を情報の保持また通知に利用した処理は、ＲＡＭ１０３に替えてＨＤＤや外部サーバなどの記憶手段を利用しても構わない。
【００２８】
図３は、情報処理装置１０１が１階から２階へ階段で昇るユーザによって運ばれる場合における、本実施形態の動作例を表す模式図である。ここでは一例として、フロアを上昇する場合を示すが、降下の場合でも同様であるため、以下では単に昇降という。ここで軌跡３０１は、情報処理装置１００を運ぶユーザの移動軌跡である。
【００２９】
図３の、ユーザが上昇を開始した時点の位置３０２で、状態特定部１１２が自装置（情報処理装置１０１）の昇降状態が昇降を開始した第１状態であると判定する（ステップＳ２０２）。この時点で取得される気圧値は、１０１０ヘクトパスカルであるとする。ＲＡＭ１０３に、昇降開始時の気圧値として１０１０ヘクトパスカルが保持され、処理は一旦終了する。
【００３０】
ユーザが昇降を終了した時点３０３では、状態特定部１１２が自装置の昇降状態は昇降終了を示す第２状態であると判定する（ステップＳ２０４）。階高推定部１１４は、昇降終了地点での気圧値１０００ヘクトパスカルと、昇降開始地点の気圧値１０１０ヘクトパスカルを取得し、前記式１を用いて階高を算出する（ステップＳ２０５）。階高推定部１１４が算出した階高を階高情報として保持し、処理を終了する（ステップＳ２０６）。
【００３１】
なお、上記第１の実施形態では、一度階高が推定され、その情報が保持された段階で終了してもよいが、例えばＧＰＳ信号などに基づいて、同一の建造物内に存在する間は処理を繰り返し、得られた階高を平均することで、より妥当な値を算出可能としてもよい。また、処理が繰り返される度に、前回の処理で得られた階高と今回の処理で得られた階高とを比較し、その差分が所定の範囲に収まるか否か応じて、今回の処理の値を、平均の算出に利用するか否かを判定し、誤検出された値による影響を低減することもできる。
【００３２】
以上説明した第１の実施形態では、情報処理装置１０１が存在する高さに対応する情報を取得し、現在時刻から所定の時間遡った直前期間における変化に基づいて、昇降の開始と終了を検知し、その建造物の１階分の高さを推定した。直前期間の長さをある程度長めに設定すれば、例えば階段の踊り場を移動する程度の平坦な移動では昇降終了とはみなされず、ユーザがあるフロアからあるフロアへの移動を完了して初めて昇降終了とみなすことができる。第１の実施形態によれば、高さ情報のみを利用して階高を推定することが可能なので、情報処理装置のハードウェア構成に方位センサ１０９が含まれない場合でも適用可能である。
【００３３】
以上説明した第１の実施形態では高さに関する情報を気圧センサ１０５による検知結果に基づいて取得したが、これに限られるものではなく、例えばＧＰＳレシーバ１０６が取得したＧＰＳ信号に基づいて取得しても良い。この場合には、ＧＰＳ衛星から受信した電波には標高を演算して求めることが出来る情報が含まれているため、現在位置の標高を求めることが出来る。
【００３４】
＜第１の実施形態の変形例１＞
第１の実施形態では、ユーザがあるフロアからあるフロアへの移動をした場合、それが１階分相当の移動であることを前提としていた。しかしながら、ユーザは、建造物の構造や内容や自身の目的に応じて、複数階分を一度に昇降する場合もある。そこで本実施形態では、高さに対応する情報の変化に加えて、さらに昇降中のユーザの移動の水平成分の変化に基づいて、１階分相当の昇降を検出する。より具体的には、昇降を開始した後に、水平方向の移動成分に大きな変化があった時点で、ユーザは１階分の昇降を完了したとみなす。これは例えば、エスカレーターや階段では、一度に複数階分の昇降をする場合にも、その途中で１階分の昇降を終えた時点で、その移動の向きが切り替わることが多いという一般的な傾向を利用したものである。ただし、階段の踊り場など、１階分相当の昇降を終える前にも方向が切り替わる可能性を考慮し、推定される階高の高さが妥当な範囲に含まれるか否かを判定する処理を加える。
【００３５】
変形例１に係る情報処理装置１００のハードウェア構成は、第１の実施形態で説明した図１（ａ）に準ずるため、詳細な説明を省略する。変形例１も、一般的なスマートフォンなどの端末に適用可能である。変形例１に係る情報処理装置１００の機能構成は、図１（ｃ）で示される。第１の実施形態と異なるのは、方向情報取得部１１５が加わった点である。方向情報取得部１１５は、方位センサ１０９から通知される信号に基づいて、東西南北に基づく絶対方位に対する情報処理装置１０１の相対方向（情報処理装置１００が向けられた方位）を表す情報を取得する。また、取得した方向を表す情報をＲＡＭ１０３に保持する。これを蓄積することで、情報処理装置１０１では、自装置が移動する方向を取得可能となる。ただし、移動方向は方位センサ１０９から得た情報から取得することに限定されず、例えばＧＰＳ情報が示す移動軌跡に基づいて取得されても構わない。その他、例えば、加速度センサと地磁気センサ、ジャイロセンサなど複数のセンサを少なくとも１つ以上組み合わせて構成しても良い。
【００３６】
図３は変形例１に係る情報処理装置１０１が実行する階高推定処理の流れを示すフローチャートである。変形例１でも、情報処理装置１０１の起動時にこのフローチャートの処理が開始され、その後、終了が指示されるまで所定周期で繰り返される。ただし、アプリケーションなどから階高推定機能が呼び出されたことに応じて処理開始としてもよい。なお、図２のフローチャートと共通する処理ステップには同じ番号を付し、詳細な説明は省略する。
【００３７】
図４のフローチャートでは、ステップＳ２０２において、自装置が昇降を開始した第１状態であると判定された場合、ステップＳ４０１に進む。ステップＳ４０１では、高さ情報取得部１１１が昇降開始地点の気圧値を取得し、方位情報取得部１１５が昇降開始地点の方位として、昇降開始時（第１の時点）で方位センサ１０９に検知された方位を表す方向情報（以下、単に方位という）を取得する。そしてそれらがＲＡＭ１０３に保持される。
【００３８】
また、変形例１では、ステップＳ２０５において、階高が推定されたら、ステップＳ４０２において、階高推定部１１４が、推定された階高が、所定の高さの範囲内に含まれるかを判定する。ここで所定の範囲とは、建造物の１階分相当の高さとして妥当な範囲である。例えば、２．４メートル以上７メートル未満相当の範囲が設定される。ただし、この範囲はメートル形式で設定される必要はない。推定された階高が、所定の高さの範囲に含まれれば、ステップＳ２０６に進み、推定された階高が保持される。一方、推定された階高が所定の高さの範囲に含まれなければ、自装置はまだ昇降途中であるとみなされ、そのまま処理を終了する。つまり、この場合、ステップＳ２０５で推定された階高は、推定処理の結果として保持されることはない。
【００３９】
また変形例１では、ステップＳ２０４において、自装置が昇降を終了した第２状態ではないと判定された場合は、ステップＳ４０３に進み、状態特定部１１２によって、現在の自装置の状態が昇降の途中である第３状態か否かを判定する。昇降途中と判定された場合、ステップＳ４０４に進む。昇降途中でなければ、そのまま処理を終了する。ここで昇降途中でないと判定される場合とは、例えば、そもそも昇降が発生していない場合である。
【００４０】
ステップＳ４０４では、方位情報取得部１１５が現在の方位を取得する。そして、検出部１１３が、ＲＡＭ１０３から昇降開始地点の方位を取得し、取得した昇降開始地点の方位と現在の方位との差分を算出し、前記差分が所定の角度の範囲以内に含まれるか否かを判定する。なお、以降この明細書では、方位を例示する際には、値を簡単にするため、真北を基準に時計回りの角度で表現する。所定の角度の範囲とは例えば、１５０度以上２３０度未満に相当する範囲として設定される。前記差分が所定の角度の範囲以内であればステップＳ４０５に進む。前記差分が所定範囲以内でなければ処理は終了される。
【００４１】
ステップＳ４０５では、方位情報取得部１１５が、ＲＡＭ１０３に保持されている昇降開始地点の方位を破棄し、前記現在の方位を保持する。
【００４２】
ステップＳ４０６では、高さ情報取得部１１１は現在の気圧値を取得する。そして、階高推定部１１４は、ステップＳ４０１で保持された昇降開始時点での気圧値と、ステップＳ４０６において取得された現在の気圧値とから、自装置が存在する建造物の階高を算出により推定する。本実施形態では、上述した式１を用いて、階高を推定する。
【００４３】
ステップＳ４０７の処理は、ステップＳ４０２と同様である。すなわち、検出部１１３が、推定された階高が、所定の高さの範囲内に含まれるかを判定する。推定された階高が、所定の高さの範囲に含まれれば、ステップＳ４０８に進み、推定された階高が保持される。一方、推定された階高が所定の高さの範囲に含まれなければ、処理を終了する。この場合も、ステップＳ４０６で推定された階高は、推定処理の結果として保持されることはない。以上の処理が、所定の周期で繰り返される。
【００４４】
図５（ａ）は、１階から３階へ階段で昇るユーザが、情報処理装置１０１を運んだ場合の動作例を表す模式図である。５０１はユーザの移動軌跡である。
【００４５】
図５（ａ）の、ユーザが昇降を開始した地点５０２で、状態特定部１１２は現在の自装置の状態が昇降開始であると判定する（ステップＳ２０２）。続いて、高さ情報取得部１１１が昇降開始地点の気圧値として昇降開始時の気圧値１０１０ヘクトパスカルを取得、方位情報取得部１１５は階高算出地点の方位として昇降開始時の方位９０度を取得し、保持する（ステップＳ４０１）。
【００４６】
ユーザが昇降し続けている地点５０３では、状態特定部１１２によって昇降途中の第３状態であると判定される（ステップＳ４０３）。検出部１１３は、方位情報取得部１１５が取得した現在の方位２７０度と、ＲＡＭ１０３が保持してある昇降開始地点の方位９０度の差分、１８０度を算出する。所定の角度の範囲が１５０度以上２３０度未満である場合、算出した差分は１８０度が含まれるので、所定範囲以内であると判定される（ステップＳ４０４でＹｅｓ）。ＲＡＭ１０３に保持されていた方位の値は破棄され、現在の方位２７０度を保持する（ステップＳ４０５）。階高推定部１１４は、現在の気圧値１０００ヘクトパスカルを取得し、ＲＡＭ１０３が保持する昇降開始地点の気圧値１０１０ヘクトパスカルを用いて式（１）より階高を推定する（ステップＳ４０６）。この値は、例えば４メートルに相当するとする。所定の高さの範囲が２．４メートル以上７メートル未満相当の範囲であるとすれば、推定された階高４メートルが含まれる。従って、推定された階高が保持され（ステップＳ４０８）、また、現在の気圧値１０００ヘクトパスカルが昇降開始地点の気圧値として保持される（ステップＳ４０９）。
【００４７】
ユーザが昇降を終了した地点５０４では、状態特定部１１２は自装置が昇降を終了した第２状態にあると判定する。（ステップＳ２０４でＹｅｓ）。高さ情報取得部１１１はユーザが昇降を終了した時点での気圧値９９０ヘクトパスカルを取得する。階高推定部１１４は、昇降を終了した時点での気圧値９９０ヘクトパスカルと、ＲＡＭ１０３が保持している昇降開始地点の気圧値１０００ヘクトパスカルより式１を用いて階高を推定する（ステップＳ２０５）。階高推定部１１４は、推定された階高を階高情報として保持する（ステップＳ２０６）。なお、ここで推定される階高は、既に推定された階高４メートルと略一致する。
【００４８】
このように、１回の昇降において複数回階高が推定された場合、常に新しい値を保持していてもよい。また、同一の建造物内に存在する間に、複数回得られた階高を平均することで、より妥当な値を算出可能し、階高情報として保持してもよい。また、前回の処理で得られた階高と今回の処理で得られた階高とを比較し、その差分が所定の範囲に収まるか否か応じて、今回の処理の値を、平均の算出に利用するか否かを判定し、誤検出された値による影響を低減することもできる。
【００４９】
図５（ｂ）は１階から２階へ階段で昇るユーザが、情報処理装置１０１を運んだ場合の動作例を示す。ただし、図３の場合とは異なり、踊り場を通過する場合を示している。５１１はユーザの移動軌跡である。以降、先に説明した動作例と重複する処理については説明を省略する。
【００５０】
ユーザが昇降を開始した地点５１２では、高さ情報取得部１１１が昇降開始地点の気圧値として昇降開始時の気圧値１０１０ヘクトパスカルを取得する。また、方位情報取得部１１５は階高算出地点の方位として昇降開始時の方位９０度を取得する（ステップＳ４０１）。
【００５１】
ユーザが昇降し続けており、かつ、階段の踊り場を通過した地点５１３では、検出部１１３は、方位情報取得部１１５が取得した現在の方位２７０度と、ＲＡＭ１０３が保持してある昇降開始地点の方位９０度の差分を算出する。所定範囲が１５０度以上２３０度未満である場合、算出した方位の差分は１８０度であるので、所定範囲以内であると判定される（ステップＳ４０４でＹｅｓ）。方位取得部１１５は、ＲＡＭ１０３に保持されている階高算出地点の方位の値を破棄し、現在の方位２７０度を保持する（ステップＳ４０５）。階高推定部１１４は、現在の気圧値１００５ヘクトパスカル、昇降開始地点の気圧値１０１０ヘクトパスカル、式１に基づいて階高が２メートルであると推定する。階高推定部１１４は、所定の高さの範囲が２．４メートル以上７メートル未満の場合、算出した階高２メートルは所定の高さの範囲以内でないので、算出した階高２メートルの情報は棄却され、終了する（ステップＳ４０７でＮｏ）。
【００５２】
ユーザが昇降を終了した地点５１４では、ユーザが昇降を終了した時点での気圧値１０００ヘクトパスカルが取得される。そして、階高推定部１１４は、昇降を終了した時点での気圧値１０００ヘクトパスカルと、ＲＡＭ１０３が保持している昇降開始地点の気圧値１０１０ヘクトパスカルと、式１を用いて階高４メートルを推定する（ステップＳ２０６）。推定された階高４メートルは、所定の高さの範囲２．４メートル以上７メートル未満に含まれるので（ステップＳ４０２でＹｅｓ）階高４メートルが階高情報として保持され、処理は終了する（ステップＳ２０６）。
【００５３】
以上説明した第１の実施形態の変形例１によれば、ユーザが、建造物において複数階分を一度に昇降する場合においても、昇降中の移動方向の変化に基づいて１階分の昇降を検出するので、１階分相当の高さを推定可能となる。また、推定された高さが階高として妥当であるかを判定するので、例えば階段の踊り場などで移動方向が変化した場合でも、誤検出が低減される。ただし、階高の高さを所定の高さの範囲を比較する処理は、使用環境に応じて省略されてもよい。例えば、ＧＰＳ情報などによりユーザと情報処理装置１０１が存在する建造物が特定可能な場合、階段の構造などが特定可能で、踊り場を考慮する必要がないのであれば、省略しても本実施形態の効果を得ることができる。
【００５４】
なお、１階分相当の昇降が完了したとみなせる昇降中の移動方向の変化は、上述した例では１５０度以上２３０度未満に相当する範囲に含まれる方向の変化がある場合とした。これはエスカレーターや階段において、連続する階に昇降する場合は１８０度向きが変わる傾向があることに基づいて設定した例である。ただし、連続する階に昇降する手段が９０度ずつ向きを変えるような建造物や、さらに細かい角度で交差するようにエスカレーターがデザインされた建造物も存在する。その場合には、適切な角度の範囲が設定されればよい。例えば、ＧＰＳ情報に基づいて情報処理装置１０１が存在する建造物が特定可能場合は、予め建造物に対応付けられた角度の範囲を取得するように構成してもよい。
【００５５】
＜第１の実施形態の変形例２＞
次に、変形例２として、移動方向の変化を考慮して１階分相当の昇降を検出する場合の、更なる変形例を説明する。変形例１では、フロア毎に階段やエスカレーターの向きが異なることが前提となっていたが、建造物によっては、一部に螺旋階段が設置されている場合がある。情報処理装置１０１が螺旋階段を一定のスピードで昇降する場合、所定周期で検知される方位は一定の角度ずつ変化する。従って、細かい角度変化量が蓄積されると、１階分相当の昇降が完了したか否かに関わらず、昇降開始以降のあるタイミングでは、昇降開始時の方位からの角度の差分が所定の範囲に含まれる可能性が高い。そこで変形例２では、昇降途中に連続的に一定の角度ずつ移動方向が変化している場合は、螺旋階段が利用されているとみなし、移動方向の変化を考慮せずに階分相当の昇降を検出する。すなわち、螺旋階段が利用された場合は、上述した第１の実施形態の方式で階高を推定する。
【００５６】
変形例２の処理を実行するためには、図４のフローチャートのステップＳ４０３において、昇降途中であると判定された場合（ステップＳ４０３でＹｅｓ）に、以下の２つの処理ステップを加えればよい。まず、方位情報取得部１１５が、現在、方位センサ１０９に検知されている方位情報を取得してＲＡＭ１０３に保持し、既に保持されている情報のうち直前（現時点より前の期間の最後）に検知された方位情報との角度差を算出する。さらに算出された角度差をＲＡＭ１０３に蓄積する。次に、過去所定時間において、取得された角度差が一定とみなせるかを判定する。例えば、誤差が所定の微小な範囲に収まるかを判定する。過去所定時間において、取得された角度差が一定とみなせると判定された場合、処理を終了する。一方、取得された角度差が一定とみなせないと判定された場合は、ステップＳ４０４に進み、以降は上述した通りの処理が実行される。
【００５７】
ここで、図６（ａ）は１階から２階へ螺旋階段で昇るユーザが情報処理装置１０１を運ぶ場合の動作例を表す模式図である。６０１はユーザの移動軌跡である。また、図６（ｂ）はこの昇降において検知される方位の履歴情報を示す。上述した動作例と共通する処理については説明を省略する。
【００５８】
図６（ａ）の、ユーザが昇降を開始した地点６０２で取得される気圧値は気圧値１０１０ヘクトパスカル、方位は９０度であるとする。ＲＡＭ１０３にはこれらの値が保持される。ユーザが昇降し続けている地点６０３とその直前、直後では、処理が繰り返される度に、現在検知される方位と、直前に検知された方位の角度差（方位差）が取得される。図６（ｂ）はその履歴の一例であり、図６（ａ）で示す例では、毎秒３０度ずつの変化が生じているとする。従って、過去所定時間において、取得された角度差が一定とみなせると判定されるため、検出部１１３は、移動方向の変化を利用した１階分相当の昇降の検出を行わない。従って、ユーザが昇降を終了した地点６０４で、取得される気圧値１０００ヘクトパスカルと、ＲＡＭ１０３が保持している昇降開始地点の気圧値１０１０ヘクトパスカルと式１とにより、階高が推定される。
【００５９】
以上説明した本変形例によれば、建造物の中での昇降手段に螺旋階段が含まれる場合でも、移動方向の変化を考慮して１階分相当の昇降を検出する処理と、移動方向の変化を考慮せずに１階分相当の昇降を検出する処理併用して実行することが可能となる。なお変形例２もまた、例えばＧＰＳ情報に基づいて情報処理装置１０１が存在する建造物が特定可能場合は、建造物の属性に応じて実行の有無を切り替えても良い。
【００６０】
＜第１の実施形態の変形例３＞
変形例１及び２のように、移動方向の変化を考慮して１階分相当の昇降を検出する場合は、ユーザ及びその情報処理装置１０１が昇降中に方向転換（例えばＵターンして逆方向の昇降をする）する場合にも、移動方向の変化を検出する場合がある。このような場合、その方向転換が行われた位置によっては、階高推定処理において、階高として妥当な高さの範囲に含まれる値が算出される可能性もある。そこで変形例３では、昇降が開始された時点以降、現在の昇降が上昇か降下かを示す情報を、ＲＡＭ１０３に保持し、昇降が終了したと特定されるより前に、昇降方向が逆方向に変化した場合には、その時点で処理を終了し、階高推定処理を行わないとする。これにより、例えばＵターンして元の階に戻った場合は、推定される階高が０メートルに近くなり、妥当とはみなされないので、誤検出を低減することが可能となる。
【００６１】
＜アプリケーションによる利用の例＞
ここで、上述した変形例を含む第１の実施形態に係る処理で推定した階高の情報を利用して、アプリケーションが建造物内で情報処理装置１０１が存在する階数を推定する例を説明する。ただし、本実施形態の利用例は、アプリケーションに実装される形態には限定されない。
【００６２】
図７（ａ）は、情報処理装置１０１の機能構成を、実装されたアプリケーションを含めて説明するブロック図である。既に説明した機能部については説明を省略する。高さ情報取得部１１１から取得される、自装置が存在する高さに対応する情報および記憶装置１０７やネットワークから取得される建造物に関する情報に基づいて、該建造物の基準階の高さと自装置が存在する高さ間の相対高度を取得する。例えば、基準高さに対応する気圧値と、現在の高さに対応する気圧値と、前述の式１を利用して計算する。この場合、ここで、Ｈは基準高さから現在位置の高さまでの相対高度、Ｐ１は基準高さの気圧値、Ｐ２は現在位置における気圧値、ｇは重力加速度、Ｒは気体定数、Ｔは基準高さからから現在位置までの平均温度である。ただし、相対高度の取得方法はこれに限らず、例えばＧＰＳ情報に基づいて取得される標高を利用し相対高度を取得してもよい。在階推定部７０２は、相対高度取得部７０１によって取得された相対高さと、階高推定部１１４によって推定された階高の高さとに基づいて、情報処理装置１０１が存在する階数を推定する。階数推定部７０２はインターネットを通じてサーバに通信し、サーバから階高情報を受信してもよい。
【００６３】
図７（ｂ）は第１の実施形態における情報処理装置１０１におけるフローチャートである。本実施形態では、アプリケーションの実行時の起動時にこのフローチャートの処理に入る。
【００６４】
ステップＳ７０１において、相対高度取得部７０１は、基準高さ情報として基準となる気圧値を決定し、ＲＡＭ１０３に保持する。ここで基準高さとは、建造物（特に屋内施設）の１階に相当する高さである。例えば、ＧＰＳ情報の取得状態に基づいて、ユーザが屋内に侵入したことが検知された時点で取得される気圧値や、建造物に個別に設定された気圧値を取得する。ステップＳ７０２では、第１の実施形態、及びその変形例で説明した処理により、該建造物における１階分相当の高さである階高を推定する。ステップＳ７０３において、相対高度取得部７０１は、基準高さの気圧値と、現在自装置が存在する位置の高さ情報である気圧値との差に基づいて相対高度を算出により取得する。ステップＳ７０４において、階数推定部７０２は、相対高度取得部７０１が算出した相対高度とＲＡＭ１０３から取得した階高情報に基づいて、ユーザが存在する階の階数を算出する。
【００６５】
図８は１階から２階へ階段で昇るユーザが情報処理装置１０１を運ぶ場合の動作例を表す模式図である。８０１はユーザの移動軌跡である。
【００６６】
ユーザが建造物に侵入した直後の時点（ユーザが昇降を開始する以前の時点）８０２では、気圧値１０１０ヘクトパスカルが取得される。図８で説明する例では、フロア階数１階であるこの気圧値が基準高さ情報としてＲＡＭ１０３に保持される（ステップＳ７０１）。
【００６７】
ユーザが１階から２階へ昇降した後の時点８０３で、階高が推定される。ここでは一例として、図５等の動作例で推定されたように、階高が４メートルと推定されたとする。さらに、相対高度取得部７０１は、ＲＡＭ１０３から基準高さ情報を取得し、現在の気圧値１０００ヘクトパスカルを取得し、これらに基づいて相対高度を取得する。ここでは、相対高度が５メートルと算出されたとする（ステップＳ７０３）。階数推定部７０２は、相対高度算出部が算出した相対高度５メートルと、ＲＡＭ１０３から取得した階高４メートルに基づいて、ユーザが現在存在する階の階数が２階であると算出し、終了する（ステップ８０４）。
【００６８】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６９】
１０１  情報処理装置
１１１  高さ情報取得部
１１２  状態特定部
１１３  検出部
１１４  推定部
【図１】
0006482258.tif 000003
【図２】
0006482258.tif 000004
【図３】
0006482258.tif 000005
【図４】
0006482258.tif 000006
【図５】
0006482258.tif 000007
【図６】
0006482258.tif 000008
【図７】
0006482258.tif 000009
【図８】
0006482258.tif 000010