IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カシオ計算機株式会社の特許一覧

特開2024-127666累積高度算出装置、累積高度算出方法、及びプログラム
<>
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図1
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図2
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図3
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図4
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図5
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図6
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図7
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図8
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図9
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図10
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図11
  • 特開-累積高度算出装置、累積高度算出方法、及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024127666
(43)【公開日】2024-09-20
(54)【発明の名称】累積高度算出装置、累積高度算出方法、及びプログラム
(51)【国際特許分類】
   G01C 5/06 20060101AFI20240912BHJP
【FI】
G01C5/06
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023037008
(22)【出願日】2023-03-09
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】▲桑▼田 正博
(57)【要約】      (修正有)
【課題】強風や身体の動きといった外的要因による気圧変動の影響を抑制することにより、精度良く現在地の高度を算出する累積高度算出装置、累積高度算出方法、及びプログラムを提供する。
【解決手段】累積高度算出装置100は、気圧センサから気圧データを取得する気圧データ取得部110と、取得した気圧データから第1の累積高度を計算する第1の計算部120と、取得した気圧データから第2の累積高度を計算する第2の計算部130と、取得した気圧データから現在の状態が第1の状態か第2の状態かを判定する状態判定部140と、判定したいずれかの状態に応じて、第1の累積高度及び第2の累積高度に基づき、累積高度を導出する統合部150と、を備えることを特徴とする。
【選択図】図3
【特許請求の範囲】
【請求項1】
気圧センサから気圧データを取得する気圧データ取得部と、
前記取得した気圧データから第1の累積高度を計算する第1の計算部と、
前記取得した気圧データから第2の累積高度を計算する第2の計算部と、
前記取得した気圧データから現在の状態が第1の状態か第2の状態かを判定する状態判定部と、
前記判定したいずれかの状態に応じて、前記第1の累積高度及び前記第2の累積高度に基づき、累積高度を導出する統合部と、
を備えることを特徴とする累積高度算出装置。
【請求項2】
前記第1の計算部は、前記取得した気圧データを第1の強度で平滑化する第1の平滑化フィルタを備え、
前記第2の計算部は、前記取得した気圧データを前記第1の強度よりも大きい第2の強度で平滑化する第2の平滑化フィルタを備え、
前記状態判定部は、前記取得した気圧データに含まれるノイズが所定基準よりも少ない場合には、現在の状態が第1の状態であると判定し、所定基準よりも多い場合には、第2の状態であると判定する、
ことを特徴とする請求項1に記載の累積高度算出装置。
【請求項3】
前記第1の計算部は、
前記第1の平滑化フィルタで平滑化された気圧データから、所定の周期ごとに第1の期間における昇降の方向を判定する第1の昇降判定部と、
前記所定の周期における昇降の差分値を算出し、前記判定した昇降の方向と前記算出した昇降の差分値とに基づいて、前記第1の累積高度を計算する第1の累積高度計算部と、をさらに備え、
前記第2の計算部は、
前記第2の平滑化フィルタで平滑化された気圧データから、所定の周期ごとに前記第1の期間よりも大きい第2の期間における昇降の方向を判定する第2の昇降判定部と、
前記所定の周期における昇降の差分値を算出し、前記判定した昇降の方向と前記算出した昇降の差分値とに基づいて、前記第2の累積高度を計算する第2の累積高度計算部と、をさらに備える、
ことを特徴とする請求項2に記載の累積高度算出装置。
【請求項4】
前記第1の累積高度計算部は、前記所定の周期における昇降の差分値が第1の閾値より大きければ、当該所定の周期における昇降の差分値を使用して前記第1の累積高度を計算し、
前記第2の累積高度計算部は、前記所定の周期における昇降の差分値が前記第1の閾値よりも小さい第2の閾値より大きければ、当該所定の周期における昇降の差分値を使用して前記第2の累積高度を計算する、
ことを特徴とする請求項3に記載の累積高度算出装置。
【請求項5】
前記状態判定部が前記第1の状態であると判定した場合、前記統合部は、前記第1の累積高度と前記第2の累積高度のうち大きい方を採用し、
前記状態判定部が前記第2の状態であると判定した場合、前記統合部は、前記第2の累積高度を採用する、
ことを特徴とする請求項1に記載の累積高度算出装置。
【請求項6】
前記状態判定部が前記第1の状態から前記第2の状態に遷移したと判定した場合、前記統合部は、前記第1の状態から前記第2の状態に切り替わってから前記第2の期間が経過するまでは、前記第1の累積高度を採用する、
ことを特徴とする請求項3又は4に記載の累積高度算出装置。
【請求項7】
前記第1の昇降判定部が前記昇降の方向が連続して上昇方向又は下降方向であると判定した場合には、前記第1の累積高度計算部は、前記連続して上昇方向又は下降方向であると判定された区間の前記昇降の差分値を足し合わせて連続的な高度変化として保持し、
前記第1の昇降判定部が前記昇降の方向が上昇方向から下降方向、又は下降方向から上昇方向に変化したと判定した場合には、前記第1の累積高度計算部は、前記連続的な高度変化をリセットし、
前記状態判定部が前記第2の状態であると判定した場合、前記統合部は、前記連続的な高度変化が所定の閾値を超えた場合には、前記第1の累積高度を採用する、
ことを特徴とする請求項3又は4に記載の累積高度算出装置。
【請求項8】
前記第1の昇降判定部が前記昇降の方向が連続して平地方向であると判定した区間が所定の閾値を超えた場合には、前記第1の累積高度計算部は、前記連続的な高度変化をリセットする、
ことを特徴とする請求項7に記載の累積高度算出装置。
【請求項9】
前記状態判定部が前記第2の状態であると判定した場合、前記統合部は、前記第1の計算部による計算を中断させ、前記第2の計算部による第2の累積高度が前記第1の計算部による第1の累積高度に追いついた場合に、前記第1の計算部による計算を再開させる、
ことを特徴とする請求項1に記載の累積高度算出装置。
【請求項10】
累積高度算出装置によって実行される方法であって、
気圧センサから気圧データを取得し、
前記取得した気圧データから第1の累積高度を計算し、
前記取得した気圧データから第2の累積高度を計算し、
前記取得した気圧データから現在の状態が第1の状態か第2の状態かを判定し、
前記判定したいずれかの状態に応じて、前記第1の累積高度及び前記第2の累積高度に基づき、累積高度を導出する、
ことを特徴とする累積高度算出方法。
【請求項11】
コンピュータを、
気圧センサから気圧データを取得する気圧データ取得部、
前記取得した気圧データから第1の累積高度を計算する第1の計算部、
前記取得した気圧データから第2の累積高度を計算する第2の計算部、
前記取得した気圧データから現在の状態が第1の状態か第2の状態かを判定する状態判定部、
前記判定したいずれかの状態に応じて、前記第1の累積高度及び前記第2の累積高度に基づき、累積高度を導出する統合部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、累積高度算出装置、累積高度算出方法、及びプログラムに関する。
【背景技術】
【0002】
気圧を計測する圧力センサから気圧データを取得し、気圧を高度に変換することで現在地の高度を算出する携帯型高度計が知られている。現実には、気候により大気圧が変動する等の影響があるため、気圧データをそのまま高度に変換しても正確な値は得られにくい。そこで、基準地点における標高に、時々刻々と変化する気圧データから得られる微小な高度の差分値を順次足し合わせていくことにより、得られた累積高度を現在地の高度として推定する手法が知られている(例えば特許文献1)。
【0003】
特許文献1に開示された携帯型高度計は、高度変化量が大きければ移動状態、小さければ静止状態にあると判定し、移動状態にある場合に、高度の差分値を加算して累積高度を更新することにより、現在値の高度を推定する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001-289632号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示された携帯型高度計は、強風や、腕に装着された場合の腕振りといった外的要因を受けることにより、実際以上に高度を加算してしまう恐れがあるし、反対に、高度変化が緩やかだと高度が加算されない恐れもある。
【0006】
本発明は、精度良く現在地の高度を算出する累積高度算出装置、累積高度算出方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の第1の観点に係る累積高度算出装置は、気圧センサから気圧データを取得する気圧データ取得部と、取得した気圧データから第1の累積高度を計算する第1の計算部と、取得した気圧データから第2の累積高度を計算する第2の計算部と、取得した気圧データから現在の状態が第1の状態か第2の状態かを判定する状態判定部と、判定したいずれかの状態に応じて、第1の累積高度及び第2の累積高度に基づき、累積高度を導出する統合部と、を備えることを特徴とする。
【0008】
また、本発明の第2の観点に係る累積高度算出方法は、気圧センサから気圧データを取得し、取得した気圧データから第1の累積高度を計算し、取得した気圧データから第2の累積高度を計算し、取得した気圧データから現在の状態が第1の状態か第2の状態かを判定し、判定したいずれかの状態に応じて、第1の累積高度及び第2の累積高度に基づき、累積高度を導出する、ことを特徴とする。
【0009】
また、本発明の第3の観点に係るプログラムは、コンピュータを、
気圧センサから気圧データを取得する気圧データ取得部、取得した気圧データから第1の累積高度を計算する第1の計算部、取得した気圧データから第2の累積高度を計算する第2の計算部、取得した気圧データから現在の状態が第1の状態か第2の状態かを判定する状態判定部、判定したいずれかの状態に応じて、第1の累積高度及び第2の累積高度に基づき、累積高度を導出する統合部、として機能させることを特徴とする。
【発明の効果】
【0010】
本発明によれば、強風や身体の動きといった外的要因による気圧変動の影響を抑制しつつ、精度良く現在値の高度を算出することができる。
【図面の簡単な説明】
【0011】
図1】実施形態に係る腕時計のハードウェア構成を示す図である。
図2】(a)第1の状態における気圧値の時間的変化の例を示す図である。(b)第2の状態における気圧値の時間的変化の例を示す図である。
図3】実施形態に係る累積高度算出装置の機能構成を示す図である。
図4】実施形態に係る累積高度算出処理を示すフローチャートである。
図5】第1の高度変化テーブルを示す図である。
図6】第2の高度変化テーブルを示す図である。
図7】実施形態に係る第1の計算処理を示すフローチャートである。
図8】実施形態に係る連続的な高度変化の算出処理を示すフローチャートである。
図9】実施形態に係る第2の計算処理を示すフローチャートである。
図10】実施形態に係る状態判定処理を示すフローチャートである。
図11】実施形態1に係る統合処理を示すフローチャートである。
図12】実施形態2に係る統合処理を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態に係る腕時計1及び累積高度算出装置100について、図面を参照しつつ詳細に説明する。なお、本実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0013】
(実施形態1)
実施形態1に係る腕時計1は、気圧センサを備え、取得した気圧データから現在地の標高を推定し、表示部に表示することによりユーザに提供する腕時計である。腕時計1は、図1に示すように、CPU10と、RAM20と、ROM30と、気圧センサ40と、A/D変換回路50と、発振回路60と、分周回路70と、入力装置80と、表示装置90と、を備え、これらが不図示のバスを介して互いに接続されている。また、腕時計1は、不図示のリストバンド等を備える。
【0014】
累積高度算出装置100は、腕時計1のCPU10等により実現される装置であり、取得した気圧データを高度データに変換し、現在地の高度を算出する。
【0015】
CPU10は、腕時計1の全体的な制御を行うCPU(Central Processing Unit)である。CPU10は、ROM30に記憶されるプログラムを実行することにより、累積高度算出装置100の種々の機能を実現する。
【0016】
RAM20は、ROM30からプログラムがロードされ、CPU10の作業領域として用いられるRAM(Random Access Memory)である。また、RAM20には、気圧データから変換した高度データが格納される高度変化テーブル21が保持される。ROM30は、CPU10が動作するためのプログラムと、処理に用いられる種々のデータを記憶するROM(Read Only Memory)である。
【0017】
気圧センサ40は、ピエゾ抵抗式気圧計等の気圧センサであり、CPU10からの指令により気圧値を測定する。A/D変換回路50は、CPU10の指令により、気圧センサ40が測定した気圧値をデジタルデータに変換し、CPU10に送る。
【0018】
発振回路60及び分周回路70は、CPU10に一定のクロック周波数を持つクロック信号を供給するためのものである。このクロック信号は、CPU10が実行するソフトウェア処理によりクロックパスルの立ち上がり回数をカウントすることで時刻を計時するために利用される。
【0019】
入力装置80は、ユーザからの指示を受け付けるスイッチ等である。表示装置90は、液晶ディスプレイ、有機EL(Electro Luminescence)等であり、タッチパッドである入力装置80が一体となった静電容量方式のタッチパネル等であってもよい。
【0020】
腕時計1のCPU10等により実現される累積高度算出装置100は、気圧センサ40により計測された気圧値を取得し、気圧値の時間的変化に含まれるノイズの量に応じた強度で平滑化する。例えば、図2(a)に示すように、なだらかに変化する気圧データが得られた場合には、累積高度算出装置100は、小さい強度で気圧データを平滑化する。反対に、図2(b)に示すようにノイズの多い気圧データが得られた場合には、累積高度算出装置100は、大きい強度で気圧データを平滑化する。そして、累積高度算出装置100は、平滑化された気圧データに基づいて現在地の高度を推定する。
【0021】
ここで、平滑化の強度が小さいとは、ローパスフィルタにおけるカットオフ周波数が高いことをいい、平滑化の強度が大きいとは、カットオフ周波数が低いことをいう。
【0022】
累積高度算出装置100は、図3に示すように、気圧センサ40から気圧データを取得する気圧データ取得部110と、小さい強度で平滑化した気圧データから累積高度を計算する第1の計算部120と、大きい強度で平滑化した気圧データから累積高度を計算する第2の計算部130と、現在のノイズの状態を判定する状態判定部140と、ノイズの状態に応じた累積高度を採用する統合部150と、を備える。
【0023】
気圧データ取得部110は、CPU10、A/D変換回路50等から構成され、気圧センサ40から気圧データを取得する。
【0024】
第1の計算部120は、気圧センサ40から取得した気圧データから第1の累積高度を計算する。累積高度とは、基準地の標高に、所定期間ごとに計算された高度の差分値を順次足し合わせていくことにより得られる高度である。
【0025】
第1の計算部120は、気圧データを第1の強度で平滑化する第1の平滑化フィルタ121と、所定の周期ごとに第1の期間における昇降の方向を判定する第1の昇降判定部122と、所定の周期における昇降の差分値を算出し、昇降の方向と差分値とに基づいて第1の累積高度を計算する第1の累積高度計算部123と、を備える。第1の平滑化フィルタ121は、任意のローパスフィルタ等である。第1の期間とは、第1の計算部120が気圧データから第1の累積高度を算出するために、例えば1クロックといった所定の周期ごとに昇降の方向を算出するための期間である。
【0026】
第2の計算部130は、気圧センサ40から取得した気圧データから第2の累積高度を計算する。第2の計算部130は、気圧データを第2の強度で平滑化する第2の平滑化フィルタ131と、所定の周期ごとに第2の期間における昇降の方向を判定する第2の昇降判定部132と、所定の周期における昇降の差分値を算出し、昇降の方向と差分値とに基づいて第2の累積高度を計算する第2の累積高度計算部133と、を備える。第2の平滑化フィルタ131は、任意のローパスフィルタ等である。第2の期間とは、第2の計算部130が気圧データから第2の累積高度を算出するために、所定の周期ごとに昇降の方向を算出するための期間である。ここで、第2の強度は、第1の強度よりも大きく、第2の期間は、第1の期間よりも大きい。
【0027】
状態判定部140は、気圧センサ40から取得した気圧データから現在の状態が第1の状態か第2の状態かを判定する。ここで、第1の状態とは、気圧値の時間的変化に含まれるノイズが少ない状態であり、第2の状態とは、ノイズが多い状態のことである。状態判定部140は、気圧データに含まれるノイズが所定基準よりも少ない場合には、現在の状態が第1の状態であると判定し、所定基準よりも多い場合には、第2の状態であると判定する。
【0028】
統合部150は、状態判定部140が判定したいずれかの状態に応じて、第1の累積高度及び第2累積高度に基づき、累積高度を導出する。
【0029】
図4は、累積高度算出装置100によって実行される累積高度算出処理を説明するフローチャートである。累積高度算出処理は、気圧センサ40から取得した気圧データから、現時点までの累積高度を算出することにより現在地の高度を推定するための処理である。
【0030】
ユーザが腕時計1の入力装置80を操作して、現在地の標高(又はそれまでの昇降高度)Hを入力すると、累積高度算出処理はスタートする。累積高度算出処理がスタートすると、累積高度算出装置100は、まず、RAM20に保持される高度変化テーブル21に、初期状態を格納する。具体的には、累積高度算出装置100は、図5に示す第1の高度変化テーブル21jの1行目に示すように、クロック周期の番号i=0、標高Hが入力された時の気圧値p、標高H等をセットする。また、累積高度算出装置100は、図6に示す第2の高度変化テーブル21kの1行目に示すように、クロック周期の番号i=0、標高Hが入力された時の気圧値p、標高H等をセットする。また、気圧値pは、i=0番目の第1の平滑化フィルタ121で平滑化された後の気圧値とp1,0と、第2の平滑化フィルタ131で平滑化された後の気圧値p2,0に代入される。
【0031】
図4に戻り、そして、第1の計算処理(ステップS100)、第2の計算処理(ステップS200)、状態判定処理(ステップS300)、統合処理(ステップS400)がそれぞれスタートする。これらの処理は、ユーザが入力装置80を操作して、累積高度算出装置100に対して累積高度算出処理を停止する指示がなされたとき等に終了する。
【0032】
図7は、図4に示す累積高度算出処理をスタートするとスタートする第1の計算処理を説明するフローチャートである。第1の計算処理は第1の計算部120によって実行される処理であり、気圧データから第1の累積高度が計算される。気圧データは、発振回路60及び分周回路70から供給されるクロック信号のクロック周期ごとに、気圧センサ40から取得される。また、第1の計算部120は、クロック周期ごと等の所定の周期ごとに第1の期間における第1の累積高度を算出する。第1の期間は、クロック周期の整数倍の周期であり、ここでは、クロック周期が1秒(1Hz)、第1の期間が10秒であるとする。
【0033】
第1の計算処理がスタートすると、第1の計算処理は、後述するいずれかの条件が満たされるまで待機状態となる(ステップS101)。第1の計算部120は、気圧データ取得部110から気圧データを取得すると、クロック周期の番号iをインクリメントする(ステップS102)。そして、第1の計算部120は、i番目の気圧データである気圧値pを第1の高度変化テーブル21jに格納する(ステップS103)。
【0034】
次に、第1の計算部120は、取得した気圧データを第1の平滑化フィルタ121で平滑化する(ステップS104)。その後、第1の計算部120は、RAM20に保持される第1の高度変化テーブル21jに、平滑化した気圧データp1,iを格納する(ステップS105)。そして、処理は、ステップS101に戻る。
【0035】
続いて、第1の計算部120は、第1の高度変化テーブル21jに第1の平滑化フィルタ121でフィルタ後の気圧データp1,iが格納されると、フィルタ後の気圧データp1,iのクロック周期の番号iが第1の期間である10(秒)以上か否かを判定する(ステップS106)。第1の計算部120が、クロック周期の番号iが10以上であると判定すると(ステップS106でYes)、第1の累積高度計算部123は、i番目のフィルタ後の気圧値p1,iと(i-1)番目のフィルタ後の気圧値p1,i-1との差分値である気圧差p1,i-p1,i-1を計算する(ステップS107)。一方で、第1の計算部120が、iが10未満であると判定すると(ステップS106でNo)、処理は、ステップS101に戻る。
【0036】
ステップS107に戻り、第1の累積高度計算部123は、公知の関数により、気圧p1,i、p1,i-1にそれぞれ対応する高度に変換してから、高度の差分値として、昇降の差分値h1,iを算出する(ステップS108)。
【0037】
続いて、第1の累積高度計算部123は、i番目の昇降の差分値h1,iの絶対値が第1の閾値より大きいか否かを判定する(ステップS109)。第1の累積高度計算部123は、i番目の昇降の差分値h1,iの絶対値が第1の閾値より大きければ(ステップS109でYes)、i番目の昇降の差分値h1,iを使用して、i番目の第1の累積高度H1,i=H1,i-1+h1,iを計算する(ステップS110)。
【0038】
一方で、第1の累積高度計算部123は、i番目の昇降の差分値h1,iの絶対値が第1の閾値より小さければ(ステップS109でNo)、ステップS110をスキップして、昇降の差分値h1,iを加算しない。
【0039】
続いて、第1の昇降判定部122は、i番目の昇降の方向を判定する(ステップS111)。第1の昇降判定部122は、昇降の差分値h1,iの値が0であれば平地方向、正であれば上昇方向、負であれば下降方向というように昇降の方向を判定する。図5における第1の高度変化テーブル21jにおいては、上昇方向であれば「↑」、下降方向であれば「↓」、平地方向であれば「→」が格納されることになる。
【0040】
ここで、第1の昇降判定部122は、ステップS109において、昇降の差分値の絶対値が第1の閾値よりも小さいと判定した場合は、昇降の方向が平地方向であると判定してもよい。また、クロック周期の番号iが最初の第1の期間未満であるi=9未満の期間については、平地方向である「→」が初期値として格納されるようにしてもよい。
【0041】
図7に戻り、続いて、第1の計算部120は、連続的な高度変化の算出処理を実行する(ステップS130)。連続的な高度変化の算出処理においては、第1の昇降判定部122が昇降の方向が連続して上昇方向又は下降方向であると判定した場合には、第1の累積高度計算部123は、連続して上昇方向又は下降方向であると判定された区間の昇降の差分値h1,jを足し合わせて連続的な高度変化として保持する。また、第1の昇降判定部122が昇降の方向が上昇方向から下降方向、又は下降方向から上昇方向に変化したと判定した場合には、第1の累積高度計算部123は、連続的な高度変化をリセットする。そして、状態判定部140が第2の状態であると判定した場合、統合部150は、連続的な高度変化が所定の閾値を超えた場合には、第1の累積高度H1,jを採用する。
【0042】
さらに、連続的な高度変化の算出処理においては、第1の昇降判定部122が昇降の方向が連続して平地方向であると判定した区間が所定の閾値を超えた場合には、第1の累積高度計算部123は、連続的な高度変化をリセットする。
【0043】
図8は、第1の計算処理において、第1の計算部120が第1の累積高度H1,iを計算すると実行される連続的な高度変化の算出処理を説明するフローチャートである。
【0044】
連続的な高度変化の算出処理がスタートすると、第1の昇降判定部122は、i番目のクロック周期において昇降の方向変化があったか否かを判定する(ステップS131)。第1の昇降判定部122が、例えば(i-1)番目のクロック周期における昇降の方向が平地方向(→)であったのに、i番目のクロック周期における昇降の方向が上昇方向(↑)又は下降方向(↓)であったと判定した場合に、第1の累積高度計算部123は、連続的な高度変化のカウントを開始するために、連続的な高度変化をセットする(ステップS132)。このとき、連続的な高度変化には、初期値として昇降の差分値h1,iがセットされる。
【0045】
また、第1の昇降判定部122が、例えば、(i-1)番目のクロック周期における昇降の方向が上昇方向(↑)であり、i番目のクロック周期における昇降の方向が上昇方向(↑)であったと判定した場合、又は(i-1)番目のクロック周期における昇降の方向が下降方向(↓)であり、i番目のクロック周期における昇降の方向が下降方向(↓)であったと判定した場合に、第1の累積高度計算部123は、昇降の差分値h1,iを加算することにより連続的な高度変化を更新する(ステップS133)。
【0046】
また、第1の昇降判定部122が、例えば、(i-1)番目のクロック周期における昇降の方向が上昇方向(↑)であったのに、i番目のクロック周期における昇降の方向が下降方向(↓)であったと判定した場合、又は(i-1)番目のクロック周期における昇降の方向が下降方向(↓)であったのに、i番目のクロック周期における昇降の方向が上昇方向(↑)であったと判定した場合に、第1の累積高度計算部123は、連続的な高度変化をリセットする(ステップS134)。
【0047】
また、第1の昇降判定部122は、例えば、(i-1)番目のクロック周期における昇降の方向が平地方向(→)であり、i番目のクロック周期における昇降の方向が平地方向(→)であったと判定した場合、(i-1)番目のクロック周期における昇降の方向が上昇方向(↑)であり、i番目のクロック周期における昇降の方向が平地方向(→)であったと判定した場合、又は(i-1)番目のクロック周期における昇降の方向が下降方向(↓)であり、i番目のクロック周期における昇降の方向が平地方向(→)であったと判定した場合には、平地方向である期間Tは所定期間γ以上であるか否かを判定する(ステップS135)。
【0048】
第1の昇降判定部122が、平地方向である期間Tが所定期間γ以上であると判定すると(ステップS135でYes)、第1の累積高度計算部123は、連続的な高度変化をリセットする(ステップS136)。一方で、第1の昇降判定部122が、平地方向である期間Tが所定期間γ以上ではないと判定すると(ステップS135でNo)、第1の累積高度計算部123は、連続的な高度変化を維持する(ステップS137)。
【0049】
その後、処理は図8の「A」に進み、図7に示すステップ101に戻る。なお、セット、更新、又は維持された連続的な高度変化は、RAM20に保持される。
【0050】
続いて、ステップS101において、第1の計算部120は、その他の条件が満たされたと判定した場合には、その条件に対応する他の処理を実行する(ステップS112)。その後、処理はステップS101に戻る。
【0051】
このように処理を進めていくと、図5に示すように、第1の高度変化テーブル21jには順次値が格納されていく。
【0052】
図9は、図4に示す累積高度算出処理をスタートするとスタートする第2の計算処理を説明するフローチャートである。第2の計算処理は第2の計算部130によって実行される処理であり、気圧データから第2の累積高度が計算される。第2の計算部130は、クロック周期ごと等の所定の周期ごとに第2の期間における第2の累積高度を算出する。第2の期間は、クロック周期の整数倍の期間であり、第1の期間よりも大きい。ここでは、クロック周期が1秒(1Hz)、第2の期間が50秒であるとする。
【0053】
第2の計算処理がスタートすると、第2の計算処理は、後述するいずれかの条件が満たされるまで待機状態となる(ステップS201)。第2の計算部130は、気圧データ取得部110から気圧データを取得すると、クロック周期の番号iをインクリメントする(ステップS202)。そして、第2の計算部130は、i番目の気圧データである気圧値piを第2の高度変化テーブル21kに格納する(ステップS203)。
【0054】
次に、第2の計算部130は、取得した気圧データを第2の平滑化フィルタ131で平滑化する(ステップS204)。その後、第2の計算部130は、RAM20に保持される第2の高度変化テーブル21kに、平滑化した気圧データp2,iを格納する(ステップS205)。
【0055】
続いて、第2の計算部130は、第2の高度変化テーブル21kに第2の平滑化フィルタ131でフィルタ後の気圧データp2,iが格納されると、フィルタ後の気圧データp2,iのクロック周期の番号iが第2の期間である50(秒)以上か否かを判定する(ステップS206)。第2の計算部130が、クロック周期の番号iが50以上であると判定すると(ステップS206でYes)、第2の累積高度計算部133は、i番目のフィルタ後の気圧値p2,iと(i-1)番目のフィルタ後の気圧値p2,i-1との差分値である気圧差p2,i-p2,i-1を計算する(ステップS207)。一方で、第2の計算部130が、iが50未満であると判定すると(ステップS206でNo)、処理は、ステップS201に戻る。
【0056】
ステップS207に戻り、第2の累積高度計算部133は、公知の関数により、気圧差p2,i-p2,i-1を昇降の差分値h2,iに変換する(ステップS208)。
【0057】
続いて、第2の累積高度計算部133は、i番目の昇降の差分値h2,iの絶対値が第2の閾値より大きいか否かを判定する(ステップS209)。第2の累積高度計算部133は、i番目の昇降の差分値h2,iの絶対値が第2の閾値より大きければ(ステップS209でYes)、i番目の昇降の差分値h2,iを使用して、i番目の第2の累積高度H2,i=H2,i-1+h2,iを計算する(ステップS210)。
【0058】
一方で、第2の累積高度計算部133は、i番目の昇降の差分値h2,iの絶対値が第2の閾値より小さければ(ステップS209でNo)、ステップS210をスキップして、昇降の差分値h2,iを加算しない。
【0059】
続いて、第2の昇降判定部132は、i番目の昇降の方向を判定する(ステップS211)。昇降判定の方法については、第1の昇降判定部122と同様である。その後、処理は、ステップS201に戻る。
【0060】
続いて、ステップS201において、第2の計算部130は、その他の条件が満たされたと判定した場合には、その条件に対応する他の処理を実行する(ステップS215)。その後、処理はステップS201に戻る。
【0061】
このように処理を進めていくと、図6に示すように、第2の高度変化テーブル21kには順次値が格納されていく。
【0062】
図10は、図4に示す累積高度算出処理をスタートするとスタートする状態判定処理を説明するフローチャートである。状態判定処理は、状態判定部140によって実行される処理であり、気圧データから現在の状態が第1の状態であるか第2の状態であるかが判定される。状態判定部140は、クロック周期である1秒ごとに現在の状態を判定する。
【0063】
状態判定処理がスタートすると、状態判定部140は、クロック周期の番号iにi=1をセットする(ステップS301)。そして、状態判定部140は、現在の状態が第1の状態か否かを判定する(ステップS302)。なお、最初のクロック周期においては第1の状態が設定されていてもよい。ここでは、最初のクロック周期であるので、状態判定部140は、現在の状態が第1の状態であると判定したとする(ステップS302でYes)。
【0064】
続いて、状態判定部140は、昇降の切り替わり頻度Fが所定値α以上であるか否かを判定する(ステップS303)。昇降の切り替わり頻度Fとは、図5に示す第1の高度変化テーブル21jにおける昇降の方向が、単位時間あたりに切り替わる回数のことである。状態判定部140は、クロック周期の番号iまでにおける所定期間において、昇降の切り替わりの頻度Fを算出し、所定値α以上であるか否かを判定する。例えば、所定期間として第1の期間である過去10秒の期間における昇降の切り替わりの頻度FでステップS303における判定をしてもよい。
【0065】
状態判定部140は、昇降の切り替わりの頻度Fが所定値α以上であると判定すると(ステップS303でYes)、i=1番目のクロック周期における現在の状態が第2の状態に切り替わったと判定する(ステップS304)。一方、状態判定部140は、昇降の切り替わり頻度Fが所定値α以下であると判定すると(ステップS303でNo)、現在の状態が引き続き第1の状態であると判定する(ステップS305)。
【0066】
そして、状態判定部140は、判定した現在の状態をRAM20に保持し(ステップS306)、クロック周期の番号iをインクリメントする(ステップS307)。その後、処理はステップS302に戻る。
【0067】
続いて、ステップS302において、状態判定部140が現在の状態が第2の状態であると判定した場合(ステップS302でNo)、状態判定部140は、昇降の切り替わり頻度Fがαとは異なる所定値β以下であるか否かを判定する(ステップS308)。状態判定部140は、クロック周期の番号iまでにおける所定期間において、昇降の切り替わりの頻度Fを算出し、所定値β以下であるか否かを判定する。なお、現在の状態が第2の状態であっても、第1の高度変化テーブル21jにおける昇降の方向から算出した昇降の切り替わりの頻度Fを利用するのは、平滑化の強度に係る第1の強度が第2の強度よりも小さく、より現実のノイズに近いノイズを拾えるからである。もちろん、第2の高度変化テーブル21kにおける昇降の方向から算出した昇降の切り替わり頻度を利用しても構わない。また、αとβが同一の値であっても構わない。
【0068】
状態判定部140は、昇降の切り替わり頻度Fが所定値β以下であると判定すると(ステップS308でYes)、i=1番目のクロック周期における現在の状態が第1の状態に切り替わったと判定する(ステップ309)。一方、状態判定部140は、昇降の切り替わり頻度Fが所定値β以上であると判定すると(ステップS308でNo)、現在の状態が引き続き第2の状態であると判定する(ステップS310)。そして、処理は、ステップS306に移り、上述したように進んでいく。
【0069】
図11は、図4に示す累積高度算出処理をスタートするとスタートする統合処理を説明するフローチャートである。統合処理は、統合部150によって実行される処理であり、現在の状態が第1の状態であるか第2の状態であるかに応じて、第1の累積高度と第2の累積高度に基づいて累積高度が導出される。
【0070】
統合処理がスタートすると、統合部150は、クロック周期の番号iにi=1をセットする(ステップS401)。そして、統合部150は、現在の状態が第1の状態か否かを判定する(ステップS402)。なお、最初のクロック周期においては第1の状態が設定されていてもよい。ここでは、最初のクロック周期であるので、統合部150は、現在の状態が第1の状態であると判定したとする(ステップS402でYes)。
【0071】
そして、統合部150は、i番目のクロック周期における第1の累積高度H1,iが第2の累積高度H2,i以上であるか否かを判定する(ステップS403)。
【0072】
統合部150は、i番目のクロック周期における第1の累積高度H1,iが第2の累積高度H2,i以上であると判定すると(ステップS403でYes)、第1の累積高度H1,iを採用する(ステップS404)。一方で、統合部150は、i番目のクロック周期における第1の累積高度H1,iが第2の累積高度H2,i以下であると判定すると(ステップS403でNo)、第2の累積高度H2,iを採用する(ステップS405)。
【0073】
一方で、ステップS402において、統合部150は、現在の状態が第2の状態であると判定すると(ステップS402でNo)、連続的な高度変化が所定値δ以上であるか否かを判定する(ステップS431)。統合部150は、連続的な高度変化が所定値δ以上であると判定すると(ステップS431でYes)、第1の累積高度H1,iを採用する(ステップS432)。一方で、統合部150は、連続的な高度変化が所定値δ以下であると判定すると(ステップS431でNo)、第2の累積高度H2,iを採用する(ステップS433)。その後、処理は、ステップS406へ移り、第1実施形態での処理と同様に進んでいく。
【0074】
即ち、状態判定部140が第1の状態であると判定した場合、統合部150は、第1の累積高度H1,iと第2の累積高度H2,iのうち大きい方を採用する。反対に、状態判定部140が第2の状態であると判定した場合、統合部150は、連続的な高度変化の大きさにより、第1の累積高度H1,i又は第2の累積高度H2,iを採用する。その後、クロック周期の番号iがインクリメントされ(ステップS406)、処理はステップS402に戻る。
【0075】
上述したように、第1の状態においては、統合部150は、第1の累積高度H1,iと第2の累積高度H2,iとで大きい値の累積高度を採用する。このように構成することにより、例えば、実際には緩やかに坂を上っているが第1の計算部120による計算では第1の閾値を超えないユーザの腕振りの上下によって昇降の差分値が打ち消されてしまうようなケースを救済することができる。もちろん、第1の状態では、第1の累積高度H1,iを採用し、第2の状態では、第2の累積高度H2,iを採用するように構成することも可能である。
【0076】
以上のように実施形態1によれば、累積高度算出装置100は、気圧データを強度の異なる2種類の平滑化フィルタで平滑化し、気圧データに含まれるノイズの量に応じて2種類の平滑化データのいずれかを採用することにより、現在地の累積高度を推定する。これにより、強風や腕振りといった外的要因を多く受けている場合には、大きい強度で平滑化された気圧データを採用することができるので、精度良く現在地の高度を算出することができる。
【0077】
また、実施形態1によれば、連続的な高度変化を計算し、第2の状態である場合でも連続的な高度変化が所定値以上の場合には、第1の累積高度H1,iを採用するように構成した。これにより、例えば、階段を走って昇ったり降りたりするようなノイズの多い状況で、より正確な累積高度を推定することができる。即ち、ノイズが多く第2の状態に切り替わったと判定された場合であっても、ノイズによる気圧変化よりも、急激な上昇又は下降による実際の高度変化があった場合に、より現実に近い値であると考えられる第1の累積高度H1,iを採用することにより、精度良く現在地の高度を推定することができる。
【0078】
さらに、実施形態1によれば、平地方向である期間Tが所定期間よりも短い場合には、連続的な高度変化をリセットせず維持するように構成した。これにより、例えば、階段の踊場等で一時的に平地であると判定された場合であっても、連続的な高度変化が維持されることにより、第2の状態であっても所定の条件を満たせば第1の累積高度H1,iを採用するため、精度の良く現在地の高度を推定することができる。
【0079】
(実施形態2)
次に、本発明の実施形態2を説明する。実施形態1と同等の構成及び処理には同一の符号を付す。実施形態1では、現在の状態に応じて、その状態である期間は、常に一方の累積高度を採用するように構成した。ノイズの量が多い第2の状態においては、昇降の差分値を算出するための第2の期間は、大きい強度で平滑化した気圧データから昇降の差分値を算出するための期間であるから、比較的大きい期間である必要がある。このため、昇降の差分値を算出するまでにタイムラグができ、その間ユーザに現在の高度の推定値を提供できないという課題がある。実施形態2では、第1の状態から第2の状態に切り替わってから暫くの期間は第1の累積高度H1,iを採用するように構成する。
【0080】
実施形態2においては、図4に示す累積高度算出処理がスタートするとスタートする4つの処理のうち、第1の計算処理(ステップS100)、第2の計算処理(ステップS200)、状態判定処理(ステップS300)については、実施形態1と同等である。
【0081】
図12は、実施形態2における統合処理を説明するフローチャートである。統合処理がスタートすると、統合部150は、クロック周期の番号iにi=1をセットする(ステップS401)。そして、統合部150は、現在の状態が第1の状態か否かを判定する(ステップS402)。ここでは、統合部150は、現在の状態が第1の状態であると判定したとする(ステップS402でYes)。
【0082】
そして、統合部150は、i番目のクロック周期における第1の累積高度H1,iが第2の累積高度H2,i以上であるか否かを判定する(ステップS403)。
【0083】
統合部150は、i番目のクロック周期における第1の累積高度H1,iが第2の累積高度H2,i以上であると判定すると(ステップS403でYes)、第1の累積高度H1,iを採用する(ステップS404)。一方で、統合部150は、i番目のクロック周期における第1の累積高度H1,iが第2の累積高度H2,i以下であると判定すると(ステップS403でNo)、第2の累積高度H2,iを採用する(ステップS405)。
【0084】
一方で、ステップS402において、統合部150は、現在の状態が第2の状態であると判定すると(ステップS402でNo)、第1の状態から第2の状態になって最初の第2の期間が経過しているか否かを判定する(ステップS421)。
【0085】
統合部150は、第1の状態から第2の状態になって最初の第2の期間が経過していないと判定すると(ステップS421でNo)、第1の累積高度H1,iを採用する(ステップS422)。即ち、状態判定部140が第1の状態から第2の状態に遷移したと判定した場合、統合部150は、最初の第2の周期が経過するまでは第1の累積高度を採用する。
【0086】
一方で、統合部150は、第1の状態から第2の状態になって最初の第2の期間が経過したと判定すると(ステップS421でYes)、第2の累積高度H2,iを採用する(ステップS423)。
【0087】
その後、統合部150は、クロック周期の番号iをインクリメントし(ステップS406)、処理はステップS402に戻る。
【0088】
なお、統合部150は、ステップS421において、第1の状態から第2の状態に切り替わってから最初の第2の期間が経過したか否かを判定する代わりに、最初の第2の期間ではない所定の期間を経過したか否かを判定するようにしてもよい。
【0089】
以上のように実施形態2によれば、統合部150は、第1の状態から第2の状態に切り替わってから第2の期間が経過するまでは、第1の累積高度H1,iを採用する。このように構成することにより、第1の状態から第2の状態に切り替わってから、最初の昇降の差分値が計算されるまでのタイムラグを埋めることができ、より正確な現在の高度の推定値をユーザに提供することができる。
【0090】
(変形例)
上述した実施形態では、第1の計算処理と第2の計算処理とが並行して実行されるが、例えば、ノイズが多い状況では第1の累積高度H1,iの値が大きくなり、第2の累積高度H2,iとの差が大きくなってしまう恐れもある。そこで、状態判定部140が第2の状態であると判定した場合、統合部150が第1の計算部120による計算を中断させるように構成してもよい。この場合、第2の計算部130による第2の累積高度H2,iが第1の計算部120による第1の累積高度H1,iに追いついた場合に、第1の計算部120による計算を再開させるように構成してもよい。
【0091】
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、この開示を説明するためのものであり、本開示の範囲を限定するものではない。すなわち、本開示の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、この開示の範囲内とみなされる。
【符号の説明】
【0092】
1 腕時計
10 CPU
20 RAM
21 高度変化テーブル
30 ROM
40 気圧センサ
50 A/D変換回路
60 発振回路
70 分周回路
80 入力装置
90 表示装置
100 累積高度算出装置
110 気圧データ取得部
120 第1の計算部
121 第1の平滑化フィルタ
122 第1の昇降判定部
123 第1の累積高度計算部
130 第2の計算部
131 第2の平滑化フィルタ
132 第2の昇降判定部
133 第2の累積高度計算部
140 状態判定部
150 統合部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12