(57)【特許請求の範囲】
【請求項１】
携帯機器に搭載される角速度センサの出力信号を取得する取得部と、
前記角速度センサの出力信号に含まれる第１の交流成分のレベルが巡回する期間における前記第１の交流成分に基づき、前記角速度センサのオフセットを推定するオフセット推定部と、
前記携帯機器の保持状態を判定する保持状態判定部と、
前記オフセット推定部が、前記保持状態判定部の判定結果に応じて前記角速度センサのオフセットを推定するか否かを制御する制御部と、
を備えるオフセット推定装置。
【請求項２】
前記オフセット推定部は、前記第１の交流成分のレベルが巡回する期間における前記第１の交流成分のレベルに応じて、前記角速度センサのオフセットを推定する請求項１に記載のオフセット推定装置。
【請求項３】
前記オフセット推定部は、
前記第１の交流成分のレベルが巡回する期間における前記第１の交流成分のレベル平均を演算し、前記オフセットを推定する請求項２に記載のオフセット推定装置。
【請求項４】
前記オフセット推定部は、
前記第１の交流成分の第１のピークから第２のピークまでのレベル平均を演算する請求項３に記載のオフセット推定装置。
【請求項５】
前記第１のピークおよび前記第２のピークは、それぞれ前記第１の交流成分の極大値または極小値である請求項４に記載のオフセット推定装置。
【請求項６】
前記オフセット推定部は、前記第１の交流成分のレベルが巡回する期間における前記第１の交流成分を積分した第２の交流成分のレベルに応じて、前記角速度センサのオフセットを推定する請求項１に記載のオフセット推定装置。
【請求項７】
前記角速度センサの出力信号から角度情報を算出する角度情報算出部を備え、
前記角度情報算出部は、前記第１の交流成分を積分して前記第２の交流成分を算出する請求項６に記載のオフセット推定装置。
【請求項８】
前記オフセット推定部は、
前記第２の交流成分のレベルが巡回する期間における前記角度情報の変化量から、前記オフセットを推定する請求項７に記載のオフセット推定装置。
【請求項９】
前記オフセット推定部は、
前記角度情報のうち、前記第２の交流成分が第１のピークを有する第１のレベルから前記第２の交流成分が第２のピークを有する第２のレベルまでの差分から、前記オフセットを推定する請求項８に記載のオフセット推定装置。
【請求項１０】
前記第１のピークおよび前記第２のピークは、それぞれ前記第２の交流成分の極大値または極小値である請求項９に記載のオフセット推定装置。
【請求項１１】
前記オフセット推定部は、
前記角度情報のうち、周期的な変化パターンを有する期間における角度情報の変化に応じて前記角速度センサのオフセットを推定する請求項７に記載のオフセット推定装置。
【請求項１２】
前記オフセット推定部は、前記周期的な変化パターンを有する期間内の相異なる時刻である第１の時刻と第２の時刻の角度情報に応じて前記角速度センサのオフセットを推定し、
前記第１の時刻の角度情報と前記第２の時刻の角度情報の位相は、前記周期的な変化パターンにおいて略同位相である請求項１１に記載のオフセット推定装置。
【請求項１３】
前記周期的な変化パターンを有する期間における前記角度情報は、前記携帯機器のユーザーの歩行動作における前記角速度センサの出力信号から算出された角度情報である請求項１２に記載のオフセット推定装置。
【請求項１４】
前記携帯機器のユーザーの歩行動作を検出する歩行動作検出部を備える請求項１２または１３に記載のオフセット推定装置。
【請求項１５】
前記オフセット推定部は、前記第１の時刻と前記第２の時刻を、前記歩行動作検出部の出力に応じて決定する請求項１４に記載のオフセット推定装置。
【請求項１６】
前記オフセット推定部は、前記第１の時刻と前記第２の時刻の時間間隔を、前記ユーザーの歩数の時間間隔とする請求項１４または１５に記載のオフセット推定装置。
【請求項１７】
前記オフセット推定部は、前記ユーザーの歩数の時間間隔を、前記ユーザーの歩行動作周期の略定数倍の時間間隔とする請求項１６に記載のオフセット推定装置。
【請求項１８】
前記オフセット推定部は、前記第１の時刻と前記第２の時刻が、前記ユーザーの歩行動作が行われた期間内の時刻とする請求項１４から１７の何れか一項に記載のオフセット推定装置。
【請求項１９】
前記角度情報算出部は、前記角速度センサの出力信号を時間積算することで角度情報を算出する請求項１１から１８の何れか一項に記載のオフセット推定装置。
【請求項２０】
前記角速度センサは、前記携帯機器の複数の回転軸の角速度を検出し、
前記制御部は、前記保持状態判定部の判定結果に応じた前記角速度センサのオフセットを前記オフセット推定部に推定させる請求項１１から１９のいずれか一項に記載のオフセット推定装置。
【請求項２１】
前記オフセット推定部は、前記角速度センサの各回転軸のオフセットを推定し、
前記制御部は、前記保持状態判定部の判定結果に応じた回転軸を選択し、当該選択した回転軸のオフセット推定結果を前記オフセット推定部から出力させる請求項１１から２０のいずれか一項に記載のオフセット推定装置。
【請求項２２】
前記制御部は、前記保持状態判定部の判定結果に応じて前記携帯機器の保持状態の変化がない期間を検出し、当該期間における前記角速度センサの出力信号に基づき前記角速度センサのオフセットを前記オフセット推定部に推定させる請求項１１から２１の何れか一項に記載のオフセット推定装置。
【請求項２３】
前記携帯機器の保持状態の変化を検知する保持状態変化検知部を備え、
前記制御部は、前記保持状態変化検知部の検知結果に応じて、前記オフセット推定部が前記角速度センサのオフセットを推定するか否かを制御する請求項１１から２１の何れか一項に記載のオフセット推定装置。
【請求項２４】
前記制御部は、前記保持状態変化検知部の検知結果に応じて前記携帯機器の保持状態の変化がない期間を検出し、当該期間における前記角速度センサの出力信号に基づき前記角速度センサのオフセットを前記オフセット推定部に推定させる請求項２３に記載のオフセット推定装置。
【請求項２５】
ユーザーの進行方向を判定する進行方向判定部を備え、
前記制御部は、前記進行方向判定部の判定結果に応じて、ユーザーの進行方向が直進方向である期間を検知し、当該期間における前記角速度センサの出力信号に基づき前記角速度センサのオフセットを前記オフセット推定部に推定させる請求項１１から２４の何れか一項に記載のオフセット推定装置。
【請求項２６】
前記制御部は、ユーザーの進行方向が直進方向ではない期間に前記角速度センサから出力された出力信号の一部または全部を用いずに、算出された角度情報に応じて前記角速度センサのオフセットを前記オフセット推定部に推定させる請求項２５に記載のオフセット推定装置。
【請求項２７】
前記角度情報算出部は、前記角度情報から、前記周期的な変化パターンを検出するパターン検出部を有する請求項１１から２６の何れか一項に記載のオフセット推定装置。
【請求項２８】
前記第１の交流成分または前記第２の交流成分は、ユーザーの動きに同期する成分である請求項６から２７のいずれか一項に記載のオフセット推定装置。
【請求項２９】
前記第１の交流成分または前記第２の交流成分は、ユーザーの歩行動作に同期する成分である請求項６から２８のいずれか一項に記載のオフセット推定装置。
【請求項３０】
携帯機器に搭載される角速度センサの出力信号を取得することと、
前記角速度センサの出力信号に含まれる第１の交流成分のレベルが巡回する期間における前記第１の交流成分に基づき、前記角速度センサのオフセットを推定することと、
前記携帯機器の保持状態を判定することと、
前記携帯機器の保持状態の判定結果に応じて前記角速度センサのオフセットを推定するか否かを制御することと、
を備えるオフセット推定方法。
【請求項３１】
コンピュータを、請求項１から２９のいずれか一項に記載のオフセット推定装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オフセット推定装置、オフセット推定方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、回転系の変位量（角度）を把握する角度センサまたは変位速度（角速度）を把握する角速度センサは、回転系の回転が停止した状態でセンサのオフセットを測定し、測定したオフセットに応じたオフセット補正を実行していた（例えば、特許文献１および２参照）。
［特許文献１］  特開平９−１５２３３８号公報
［特許文献２］  特開２００４−２１２３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
例えば、角速度センサを搭載した携帯機器装置等において、上述のオフセット補正を実行する場合、当該携帯機器装置が静止してから角速度センサのオフセットを測定することになる。しかしながら、ユーザーが携帯機器装置を携帯した場合、当該携帯機器装置が静止するまでの待機時間が長くなってしまい、オフセット測定が長期化していた。また、角速度センサのオフセットが経時的に変化すると、オフセット測定が長期化することによって、定期的にオフセットを測定して補正することが困難になってしまい、角速度センサの測定精度が低下していた。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、携帯機器に搭載される角速度センサの出力信号を取得する取得部と、角速度センサの出力信号に含まれる第１の交流成分のレベルが巡回する期間における第１の交流成分に基づき、角速度センサのオフセットを推定するオフセット推定部と、を備えるオフセット推定装置、オフセット推定方法、およびプログラムを提供する。【０００５】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係る携帯機器１０の一例を示す。
【図２】本実施形態に係るオフセット推定装置１００の構成例を示す。
【図３】本実施形態に係るオフセット推定装置１００の動作フローを示す。
【図４】本実施形態に係る携帯機器１０のセンサ１１０の出力信号の一例を示す。
【図５】本実施形態に係る携帯機器１０の角速度センサ１１２の出力信号を時間積算した場合の例を示す。
【図６】本実施形態に係るオフセット推定装置１００の第１の変形例を示す。
【図７】本実施形態に係るオフセット推定装置１００の第２の変形例を示す。
【図８】本実施形態に係るオフセット推定装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態に係る携帯機器１０の一例を示す。携帯機器１０は、複数のセンサを搭載し、当該携帯機器１０の動き、保持状態、および位置等を検出する。また、携帯機器１０は、一例として、各センサのキャリブレーションまたは自己診断等を実行して、検出感度を向上させる。
【０００９】
携帯機器１０は、一例として、外部の装置およびインターネット等に接続するための通信機能、ならびにプログラムを実行するためのデータ処理機能等を備える。携帯機器１０は、例えば、スマートフォン、携帯電話、タブレット型ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、携帯型ＧＰＳ装置、または小型ＰＣ等である。携帯機器１０は、表示部１２を備える。
【００１０】
表示部１２は、例えば、インターネットのＷＥＢページ、電子メール、地図、文書・音楽・動画・画像データ等を操作する画面を、ユーザーの指示に応じて表示する。また、表示部１２は、例えば、ユーザーの指示が入力されるタッチパネルディスプレイであり、ユーザーからのタッチ入力によってブラウザ等のソフトウエアの操作画面にユーザーの指示が入力される。これに代えて、携帯機器１０は、ジェスチャ入力でユーザーの指示が入力されてもよい。これに代えて、携帯機器１０は、キーボード、マウス、および／またはジョイスティック等の入力デバイスによってユーザーの指示が入力されてもよい。
【００１１】
ここで、本実施形態に係る携帯機器１０において、表示部１２の表示面と平行な面をｘｙ平面とし、当該表示面に対して垂直方向をｚ軸とする例を説明する。また、本実施形態に係る携帯機器１０において、表示部１２が縦長の長方形の形状を有する例を説明する。そして、当該長方形の２組の向かい合う辺のうち、短い方の辺に沿う方向（横方向）をｘ軸とし、長い方の辺に沿う方向（縦方向）をｙ軸とする。
【００１２】
即ち、ユーザーが携帯機器１０を手に保持して表示部１２を見た場合、水平方向はｘ軸と略平行となり、ユーザーが立つ鉛直方向はｙｚ平面と略平行となる例を説明する。この場合、ユーザーが携帯機器１０を電話として用い、耳に当てて通話する場合、ユーザーが向く進行方向とｘｙ平面とは略平行となり、当該進行方向に対して垂直方向とｚ軸とが略平行となる。また、ユーザーが携帯機器１０を右手に保持したまま歩行動作をしつつ腕を前後に降った場合、腕を振る方向とユーザーの進行方向は、ｘｙ平面と略平行となり、水平方向とｚ軸とが略平行となる。
【００１３】
このような本実施形態の携帯機器１０は、角速度センサを搭載し、当該角速度センサのオフセットを推定するオフセット推定装置を備える。本実施形態において、携帯機器１０は、直交するｘ軸、ｙ軸、およびｚ軸をそれぞれ回転軸方向とする３つの角速度センサを備える例を説明する。オフセット推定装置は、ユーザーが携帯機器１０を保持する状態に応じて、複数の角速度センサのオフセットをそれぞれ推定する。
【００１４】
ここで、例えば、携帯機器１０をユーザーが手に保持した状態、およびポケットに入れた状態等においては、ユーザーの体温によって角速度センサの周囲温度は変化する場合がある。また、携帯機器１０において、動画再生等のＣＰＵに負荷がかかる処理動作を実行させることによっても、角速度センサの周囲温度は変化する場合がある。角速度センサは、このような温度等の環境の変化に応じて、オフセットの値が変化する場合がある。そこで、本実施形態のオフセット推定装置は、定期的または予め定められた時間等にオフセットを推定して、オフセットの経時的な変化による角速度センサの精度の低下を防止する。
【００１５】
図２は、本実施形態に係るオフセット推定装置１００の構成例を示す。オフセット推定装置１００は、歩行しているユーザーが保持する携帯機器１０に内蔵されたセンサの出力に基づき、当該携帯機器１０に内蔵された角速度センサのオフセットを推定する。オフセット推定装置１００は、センサ１１０からの信号を取得する取得部１２０と、保持状態判定部１３０と、歩行動作検出部１４０と、パターン記憶部１５０と、角度情報算出部１６０と、オフセット推定部１７０と、制御部１８０とを備える。
【００１６】
センサ１１０は、携帯機器１０に搭載される。センサ１１０は、角速度センサ１１２を含む。また、センサ１１０は、加速度センサおよび／または地磁気センサを含んでもよい。センサ１１０は、加速度、角速度、または地磁気等の検出結果をそれぞれ出力する。
【００１７】
角速度センサ１１２は、一例として、携帯機器１０の複数の回転軸に応じて複数搭載される。角速度センサ１１２は、例えば、サニャック効果を利用する光学式ジャイロセンサ、コリオリ力を利用する振動式ジャイロセンサ、流体式ジャイロセンサ、および角運動量の保存則を利用する機械式ジャイロセンサのいずれか、または組み合わせである。また、角速度センサ１１２は、ＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍ）技術によって形成されたデバイスであってよい。
【００１８】
取得部１２０は、複数のセンサ１１０に接続され、センサ１１０からの出力信号を取得する。取得部１２０は、携帯機器１０の移動および静止といった保持状態に応じたセンサ１１０からの出力信号を取得する。取得部１２０は、一例として、ユーザーが携帯機器１０を所持して歩行する場合、センサ１１０から、ユーザーの歩行に伴う携帯機器１０の移動に応じた出力信号を取得する。取得部１２０は、取得した出力信号を、保持状態判定部１３０、歩行動作検出部１４０、および角度情報算出部１６０に送信する。
【００１９】
保持状態判定部１３０は、取得部１２０に接続され、携帯機器１０の保持状態を判定する。保持状態判定部１３０は、一例として、センサ１１０からの出力信号の変化パターンに基づいて、携帯機器１０の保持状態を判定する。この場合、保持状態判定部１３０は、予め記憶されたユーザーの歩行に伴う出力信号の変化パターンと、センサ１１０からの出力信号とを比較して、携帯機器１０の保持状態を判定する。
【００２０】
本実施形態において、保持状態判定部１３０は、複数の保持状態に対応する出力信号に対し予め定められた演算をして予め算出された複数の基準特徴量と、センサ１１０の出力信号に予め定められた演算と同種の演算をして得られる特徴量とを比較して、当該センサ１１０の出力信号がいずれの基準特徴量に対応するかに応じて、携帯機器１０の保持状態を判定する場合を中心に説明する。保持状態判定部１３０は、算出部１３２と、特徴量対応判定部１３４と、を有する。
【００２１】
算出部１３２は、センサ１１０の出力信号を受け取り、出力信号に含まれる複数の軸方向成分の少なくとも一部についての平均および分散の少なくとも一方を含む特徴量を算出する。具体的には、出力信号に含まれる複数の軸方向成分の平均および分散に対し予め定められた重み付け係数で重み付けをして、それぞれを一次線形に結合させた特徴量を算出する。この重み付け係数は、それぞれの保持状態で予めサンプリングされた出力信号に含まれる複数の軸方向成分の平均および分散を主成分分析した結果得られる重み付け係数を用いることが好ましい。
【００２２】
特徴量対応判定部１３４は、算出部１３２が算出した特徴量と、予め算出された基準特徴量に応じて、携帯機器１０の保持状態を判定する。一例として、特徴量対応判定部１３４は、携帯機器１０の複数の保持状態のそれぞれに応じてグループ化した複数の分布のいずれの範囲に算出部１３２が算出した特徴量が含まれるかに基づいて、携帯機器１０の保持状態を判定する。特徴量対応判定部１３４は、判定した結果を制御部１８０に送信する。
【００２３】
歩行動作検出部１４０は、取得部１２０に接続され、取得部１２０から受け取ったセンサ１１０の出力信号に応じて携帯機器１０を保持するユーザーの歩行動作を検出する。一例として、歩行動作検出部１４０は、ユーザーが歩行状態であるか否かを検出する。歩行動作検出部１４０は、保持状態判定部１３０に接続され、判定した結果を保持状態判定部１３０に送信する。
【００２４】
パターン記憶部１５０は、携帯機器１０の複数の保持状態のそれぞれについて、出力信号のパターンの特徴を示す情報を記憶する。例えば、パターン記憶部１５０は、複数の保持状態に対応する出力信号に対し予め定められた演算をして予め算出された複数の基準特徴量を記憶する。これに代えて、またはこれに加えて、パターン記憶部１５０は、出力信号のパターンを記憶してもよい。これに代えて、またはこれに加えて、パターン記憶部１５０は、出力信号のパターンの特徴を分析した結果を記録してもよい。
【００２５】
角度情報算出部１６０は、取得部１２０に接続され、取得部１２０から受け取った角速度センサ１１２の出力信号から角度情報を算出する。角度情報算出部１６０は、角速度センサ１１２の出力信号を時間積算することで角度情報を算出する。角度情報算出部１６０は、算出した角度情報をオフセット推定部１７０に送信する。
【００２６】
オフセット推定部１７０は、角度情報算出部１６０に接続され、角度情報算出部１６０が算出した角度情報のうち、周期的な変化パターンを有する期間における角度情報の変化に応じて角速度センサ１１２のオフセットを推定する。オフセット推定部１７０は、携帯機器１０の複数の回転軸に応じて角速度センサ１１２が複数搭載される場合、少なくとも一の角速度センサ１１２のオフセットを推定する。
【００２７】
また、オフセット推定部１７０は、歩行動作検出部１４０に接続され、歩行動作検出部１４０の検出結果に応じて、角速度センサ１１２のオフセットを推定するか否かを切り替える。オフセット推定部１７０は、一例として、ユーザーが歩行していない場合、角速度センサ１１２のオフセットの推定を実行しない。
【００２８】
制御部１８０は、オフセット推定部１７０が、保持状態判定部１３０の判定結果に応じて角速度センサ１１２のオフセットを推定するか否かを制御する。即ち、制御部１８０は、保持状態判定部１３０およびオフセット推定部１７０の間に接続され、保持状態判定部１３０の判定結果に応じた角速度センサ１１２のオフセットをオフセット推定部１７０に推定させる。
【００２９】
以上の本実施形態のオフセット推定装置１００は、まず、歩行状態のユーザーが所持する携帯機器１０の保持状態を予め定められた複数の分類のうち、一の保持状態にあることを判定する。例えば、保持状態判定部１３０は、携帯機器１０の保持状態の分類に、携帯機器１０を歩行中のユーザーが手に持って操作または視認する状態での保持、携帯機器１０を耳に当てて通話する状態での保持、携帯機器１０を手に持って腕を振る状態での保持、ポケット内での保持、およびカバンの中での保持を含める。オフセット推定装置１００は、保持状態判定部１３０が判定した保持状態に応じて、角速度センサ１１２のオフセットを測定する。
【００３０】
図３は、本実施形態に係るオフセット推定装置１００の動作フローを示す。オフセット推定装置１００は、図３に示す動作フローを実行することにより、歩行中のユーザーが所持する携帯機器１０に搭載された角速度センサ１１２のオフセットを推定する。
【００３１】
まず、取得部１２０は、複数のセンサ１１０の出力信号を取得する（Ｓ３００）。本実施形態において、複数のセンサ１１０は、直交するｘｙｚ方向の加速度を検出する加速度センサ、および、ｘｙｚ方向の角速度を検出する角速度センサ１１２の、合計６個のセンサである例を説明する。図４は、このような本実施形態に係るセンサ１１０の出力信号の一例を示す。
【００３２】
図４の横軸は時間を示し、縦軸は各センサの出力強度を示す。例えば、第１、２、および３波形は、ｘｙｚ方向の加速度を検出した加速度センサの出力強度をそれぞれ示す。また、第４波形は、第１、２、および３波形の合成波形を示す。また、第５、６、および７波形は、ｘｙｚ方向の角速度を検出した角速度センサ１１２の出力強度をそれぞれ示す。また、第８波形は、第５、６、および７波形の合成波形を示す。取得部１２０は、このような第１、２、３、５、６、および７波形を各センサから取得して、保持状態判定部１３０、歩行動作検出部１４０、および角度情報算出部１６０に送信する。
【００３３】
次に、歩行動作検出部１４０は、ユーザーが歩行中であるか否かを判定する（Ｓ２１０）。歩行動作検出部１４０は、一例として、加速度センサからの出力信号が予め定められた範囲の周期で変動するか否かに応じて、ユーザーが歩行中であるか否かを判定する。ユーザーが略同一の速度で歩行すると、ユーザーの進行方向および進行方向に垂直な方向の加速度が略一定の周期で発生する。この場合、例えば、ユーザーの身長、体重、足の長さ、歩き方、および歩く速度等に応じた周期、振幅の加速度が発生し、加速度センサは、当該加速度を検出することにより、ユーザーの歩行に応じた振動パターンを出力する。
【００３４】
歩行動作検出部１４０は、一例として、出力信号のパターンの特徴に応じて、ユーザーが歩行中であるか否かを判定する。この場合、歩行動作検出部１４０は、パターン記憶部１５０に接続され、パターン記憶部１５０から読み出したパターンの特徴と出力信号のパターンの特徴とを比較してよい。この場合、パターン記憶部１５０は、ユーザーが実際に歩行した場合の出力信号のパターンを予め記憶する。
【００３５】
図４の例において、携帯機器１０のｘ軸およびｙ軸方向の加速度を検出する加速度センサの出力波形である第１波形および第２波形は、第１状態および第３状態と示された期間の間、略一定の周期で出力強度が変動している。また、ｙ軸およびｚ軸方向の加速度を検出する加速度センサの出力波形である第２波形および第３波形は、第２状態と示された期間の間、略一定の周期で出力強度が変動している。歩行動作検出部１４０は、このような変動を検出したことに応じて、ユーザーの歩行を検出したと判定する。
【００３６】
歩行動作検出部１４０は、このような略一定の周期の変動を検出しなかった場合（Ｓ３１０：Ｎｏ）、検出結果を保持状態判定部１３０およびオフセット推定部１７０に送信する。そして、オフセット推定装置１００は、ステップＳ３００に移行し、取得部１２０による出力信号の取得に戻る。即ち、オフセット推定装置１００は、ユーザーが歩行している状態を検出するまで、取得部１２０による出力信号の取得を繰り返す。この場合、保持状態判定部１３０およびオフセット推定部１７０は、保持状態の判定動作およびオフセット推定動作をそれぞれ実行しなくてよい。
【００３７】
歩行動作検出部１４０がユーザーの歩行を検出した場合（Ｓ３１０：Ｙｅｓ）、保持状態判定部１３０は、携帯機器１０の保持状態を判定する（Ｓ３２０）。即ち、保持状態判定部１３０は、ユーザーが歩行中であると判定されたことを条件として携帯機器１０の保持状態を判定する。
【００３８】
これに代えて、保持状態判定部１３０は、歩行動作検出部１４０の判定動作と並行して携帯機器１０の保持状態を判定してもよい。この場合、保持状態判定部１３０は、取得部１２０から受信する出力信号の予め定められた期間の判定を順次実行し、歩行動作検出部１４０がユーザーの歩行中を判定した判定結果を受信したタイミングの判定結果をオフセット推定部１７０に送信する。即ち、保持状態判定部１３０は、ユーザーが歩行中であるタイミングにおける出力信号に基づいて、携帯機器１０の保持状態を判定する。
【００３９】
パターン記憶部１５０には、複数の保持状態と、複数の保持状態のそれぞれで予めサンプリングされたユーザーの歩行に伴う出力信号に対し予め定められた演算をして得られる基準特徴量と、が対応付けられて記憶される。ここで、基準特徴量として、例えば、出力信号に含まれる複数の軸方向成分の少なくとも一部についての平均および分散の少なくとも一方を含む特徴量を用いる。
【００４０】
この他、複数のセンサ１１０が第１の物理量を検知する第１センサと、第１の物理量とは種類が異なる第２の物理量を検知する第２センサと、を含む場合には、基準特徴量として、例えば、第１センサの出力信号における少なくとも１つの軸方向成分、および第２センサの出力信号における少なくとも１つの軸方向成分に応じた特徴量を用いる。このように、複数の物理量に基づいた基準特徴量を用いることにより、保持状態判定の精度を向上させ、また、保持状態を細かく判定することが可能となる。尚、第１センサと第２センサの例としては、例えば、角速度センサ、加速度センサ、地磁気センサ等が考えられる。
【００４１】
尚、予め定められた演算としては、上記基準特徴量が得られる演算であれば特に限定は無く、複数の保持状態のそれぞれで予めサンプリングされた出力信号を主成分分析した結果得られる重み付け係数で複数のセンサ１１０の出力信号を重み付けする演算が考えられる。
【００４２】
これに代えて、パターン記憶部１５０には、複数の保持状態と、複数の保持状態のそれぞれで予めサンプリングされたユーザーの方向に伴う出力信号を複数の軸方向成分に分解したときの、軸方向成分のうちの少なくとも２以上の軸方向成分同士の関係性が記憶されていてもよい。
【００４３】
この他、複数のセンサ１１０が第１の物理量を検知する第１センサと、第１の物理量とは種類が異なる第２の物理量を検知する第２センサと、を含む場合には、パターン記憶部１５０には、第１センサの出力信号における少なくとも１つの軸方向成分と２センサの出力信号における少なくとも１つの軸方向成分の関係性が記憶されていてもよい。このような複数の物理量に基づいた関係性を用いることにより、保持状態判定の精度を向上させ、また、保持状態を細かく判定することが可能となる。尚、第１センサと第２センサの例としては、例えば、角速度センサ、加速度センサ、地磁気センサ等が考えられる。
【００４４】
保持状態判定部１３０は、取得部１２０が取得するセンサ１１０の出力信号と、パターン記憶部１５０の出力に基づき携帯機器１０の保持状態を判定する。より詳細には、取得部１２０が取得するセンサ１１０の出力信号に対し、パターン記憶部１５０で行った予め定められた演算と同種の演算をして特徴量を算出し、この算出した特徴量が、パターン記憶部１５０に記憶されたいずれの基準特徴量に対応するかに基づいて、携帯機器１０の保持状態を判定する。
【００４５】
保持状態判定部１３０で実行する演算としては、複数の保持状態のそれぞれで予めサンプリングされた出力信号を主成分分析した結果得られる重み付け係数で複数のセンサ１１０の出力信号を重み付けする演算が考えられる。ただし、主成分分析した結果得られる重み付け係数と全く同じ係数を用いる必要はなく、係数を僅かに異ならせる等の微調整を加えた係数を用いてもよい。
【００４６】
これに代えて、保持状態判定部１３０は、ユーザーの歩行に伴うセンサ１１０の出力信号を複数の軸方向成分に分解したときの、軸方向成分のうちの少なくとも２以上の軸方向成分同士の関係性に基づいて携帯機器１０の保持状態を判定してもよい。
【００４７】
この他、複数のセンサ１１０が第１の物理量を検知する第１センサと、第１の物理量とは種類が異なる第２の物理量を検知する第２センサと、を含む場合には、保持状態判定部１３０は、第１センサの出力信号における少なくとも１つの軸方向成分と第２センサの出力信号における少なくとも１つの軸方向成分の関係性に基づいて携帯機器１０の保持状態を判定してもよい。このように複数の物理量に基づいた関係性を用いると、保持状態判定の精度を向上させ、また、保持状態を細かく判定することが可能となる。
【００４８】
尚、第１センサと第２センサの例としては、例えば、角速度センサ、加速度センサ、地磁気センサ等が考えられる。この他、保持状態判定部１３０は、出力信号における複数の軸方向成分の変化パターンに基づいて、携帯機器１０の保持状態が、複数の保持状態のいずれに分類されるかを判定する。ここで、保持状態判定部１３０は、一例として、出力信号の予め定められた期間の波形パターンに応じて、携帯機器１０の保持状態を判定する。
【００４９】
例えば、保持状態判定部１３０は、予め定められた期間Δｔを、ユーザーの歩行によって検出されるべき出力信号の変動周期のｎ倍（ｎは１以上の整数）の期間とする。これに代えて、保持状態判定部１３０は、予め定められた期間を、複数のユーザーの歩行によってそれぞれ検出される変動周期の平均値等のｎ倍程度の期間としてもよい。
【００５０】
保持状態判定部１３０は、センサ１１０によって検出される加速度および／または角速度の複数の軸方向成分のうちの少なくとも２以上の軸方向成分同士の関係性に基づいて、携帯機器１０の保持状態を判定する。例えば、保持状態判定部１３０は、図４の第１状態において、第１波形および第２波形が略一定の周期で出力強度が変動し、第３波形の変動は第１波形および第２波形の変動に比べて小さく、また、角速度の検出結果である第５、６、および７波形の変動が検出されていないことに応じて、携帯機器１０の保持状態を判定する。この場合、保持状態判定部１３０は、第１波形および第２波形に対応する携帯機器１０のｘ軸およびｙ軸方向が、ユーザーの進行方向およびユーザーの直立方向である鉛直方向にそれぞれ略平行な状況と判断して、ユーザーは当該携帯機器１０を耳に当てていると判定する。
【００５１】
また、保持状態判定部１３０は、図４の第２状態において、第２波形および第３波形が略一定の周期で出力強度が変動し、第１波形の変動は第２波形および第３波形の変動に比べて小さく、また、第５、６、および７波形の変動が検出されていないことに応じて、携帯機器１０の保持状態を判定する。この場合、保持状態判定部１３０は、携帯機器１０のｙ軸およびｚ軸方向が、ユーザーの進行方向およびユーザーの直立方向にそれぞれ略平行な状況と判断して、ユーザーは当該携帯機器１０を手で持って表示画面を見ていると判定する。
【００５２】
また、保持状態判定部１３０は、図３の第３状態において、第１波形および第２波形が略一定の周期で出力強度が変動し、第３波形の変動は第１波形および第２波形の変動に比べて小さく、また、第７波形が略一定の周期で出力強度が変動していることに応じて、携帯機器１０の保持状態を判定する。この場合、保持状態判定部１３０は、携帯機器１０のｘ軸およびｙ軸方向が、ユーザーの進行方向およびユーザーの直立方向である垂直方向にそれぞれ略平行でかつ、ｘ軸方向に一定周期の角速度が加わっている状況と判断して、ユーザーが当該携帯機器１０を手に持って腕を振っていると判定する。
【００５３】
このように、保持状態判定部１３０は、少なくとも１つの軸方向について第１の物理量を検知する第１センサからの第１の出力信号における少なくとも１つの軸方向成分と、少なくとも１つの軸方向について第１の物理量とは種類が異なる第２の物理量を検知する第２センサからの第２の出力信号における少なくとも１つの軸方向成分とを含む複数の成分の変化パターンに基づいて、携帯機器１０の保持状態を判定してよい。また、保持状態判定部１３０は、３種類以上の物理量の検知結果に基づき、保持状態を判定してもよい。このように、複数の物理量に基づいて保持状態を判定することによって、保持状態判定部１３０は、携帯機器１０のより複雑な保持状態を判定することができる。
【００５４】
保持状態判定部１３０は、以上のように、複数のセンサ１１０の出力信号のパターンに応じて、携帯機器１０の保持状態を判定する。ここで、保持状態判定部１３０は、パターン記憶部１５０に記憶された情報に基づいて、出力信号が複数の保持状態のいずれに対応するかを判定してよい。この場合、パターン記憶部１５０は、一例として、携帯機器１０の保持状態に対応する出力信号のパターンを記憶し、保持状態判定部１３０は、出力信号のパターンと記憶されたパターンとを比較し、パターンがマッチングされたことに応じて、対応する保持状態を判定結果とする。
【００５５】
これに代えて、保持状態判定部１３０は、出力信号から得られる特徴量が、パターン記憶部１５０に記憶されたいずれの基準特徴量に対応するかに基づいて、携帯機器１０の保持状態を判定してもよい。即ち、パターン記憶部１５０は、一例として、携帯機器１０の保持状態に対応する出力信号の平均値、分散、変動幅、周期を主成分分析して得られる結果を基準特徴量として記憶する。この場合、特徴量対応判定部１３４は、算出部１３２が算出した特徴量と記憶されたパターンの基準特徴量とを比較し、特徴量が予め定められた範囲で一致することに応じて、対応する保持状態を判定結果とする。特徴量対応判定部１３４は、予め定められた期間Δｔ毎に、携帯機器１０の保持状態を判定し、判定した結果を制御部１８０に送信する。
【００５６】
ユーザーの歩行動作に伴うセンサ１１０からの出力信号は、携帯機器１０の保持状態毎に顕著に異なる。これを利用して、保持状態判定部１３０は、取得部１２０が取得するセンサ１１０の出力信号のうち、ユーザーが歩行中であるタイミングにおける出力信号に基づいて、携帯機器１０の保持状態を判定してもよく、また、取得部１２０が取得するセンサ１１０の出力信号のうち、ユーザーが歩行中ではないタイミングにおける出力信号を実質的に用いずに携帯機器１０の保持状態を判定してもよい。
【００５７】
ユーザー歩行中のセンサ出力信号を用いることにより、保持状態判定の精度を向上させることが出来ると共に、保持状態を細かく判定することが可能となる。尚、「ユーザーが歩行中ではないタイミングにおける出力信号を実質的に用いず」とは、ユーザーが歩行中ではないタイミングにおける出力信号を用いないことの他、出力信号を用いるが、影響度および／または寄与度を著しく下げて使用する場合を含むものとする。
【００５８】
次に、オフセット推定部１７０は、角度情報算出部１６０から受け取る角度情報のうち、周期的な変化パターンを有する期間における角度情報の変化に応じて、角速度センサ１１２のオフセットを推定する（Ｓ３３０）。ここで、角速度センサ１１２の出力信号の変動は、図４の第１状態および第２状態における第５、６、および７波形に示すとおり、加速度センサの変動に比べて小さくなる場合がある。このような場合、角速度センサ１１２の出力信号から、ユーザーの歩行に伴う周期的な変動を有するか否かを判断することは、加速度センサの出力信号から判断することに比較して困難になることがある。
【００５９】
しかしながら、一例として、図４の第８波形に示すとおり、第５、６、および７波形の合成波形は、ユーザーの歩行に伴う周期的な変動を有することがわかる。即ち、出力信号の変動幅が小さくなっても、信号成分を累積することで、周期的な変動を有するか否かを判断することが容易になる。そこで、角度情報算出部１６０は、角速度センサの出力信号を時間積算することで角度情報を算出し、オフセット推定部１７０は、当該角度情報に周期的な変化パターンを有するか否かを判断する。
【００６０】
図５は、本実施形態に係る携帯機器１０の角速度センサ１１２の出力信号を時間積算した場合の例を示す。図５の横軸は時間を示し、縦軸は角速度センサ１１２の出力信号を時間積算した積算角度を示す。図５の例に示すとおり、角速度センサ１１２の出力信号を時間積算した角度情報の波形は、周期的な時間変化パターンと略一定の傾きとが重畳された波形となる。ここで、周期的な変化パターンを有する期間における角度情報は、ユーザーの歩行動作に起因する角速度センサ１１２の出力信号から算出された角度情報である。
【００６１】
また、図５のＸ点とＹ点を結ぶ点線に相当する略一定の傾きは、角速度センサ１１２のオフセットに起因する角度情報である。角速度センサ１１２のオフセットが経時的に変化する場合、当該傾きが経時的に変化することになる。
【００６２】
オフセット推定部１７０は、周期的な変化パターンを有する期間内の相異なる時刻である第１の時刻と第２の時刻の角度情報に応じて、角速度センサ１１２のオフセットを推定する。ここで、第１の時刻の角度情報と第２の時刻の角度情報の位相は、周期的な変化パターンにおいて略同位相である。一例として、オフセット推定部１７０は、図５のＡ点を第１の時刻の角度情報、Ｂ点を第２の時刻の角度情報とする。
【００６３】
即ち、オフセット推定部１７０は、オフセットに起因する傾きの成分が無い場合、略同一の積算角度となる角度情報の波形上の異なる２点を、第１および第２の時刻の角度情報とする。したがって、例えば、角速度センサ１１２のオフセットが０の場合、Ａ点とＢ点を結ぶ直線は、略同一の積算角度を示す点を通って時間軸と略平行となり、傾きも０となる。また、角速度センサ１１２に略一定のオフセットが生じている場合、Ａ点とＢ点を結ぶ直線は、角度情報の波形上の略同一の位相を示す点を通り、当該オフセットに対応する傾きを有して時間軸（Ｘ軸）または積算角度軸（Ｙ軸）と交わる。
【００６４】
オフセット推定部１７０は、一例として、周期的な変化パターンの一つの周期内において、積算角度が最大値、平均値、または最小値等の値となる時刻を第１の時刻とする。また、オフセット推定部１７０は、周期的な変化パターンの他の周期内において、積算角度が最大値、平均値、および最小値等のうち、第１の時刻を定めた値となる時刻を第２の時刻とする。図５のＡ点およびＢ点は、周期的な変化パターンの異なる周期内において、積算角度が最大値となる時刻に応じて定めた例を示す。
【００６５】
ここで、オフセット推定部１７０は、第１の時刻と第２の時刻を、歩行動作検出部１４０の出力に応じて決定する。即ち、オフセット推定部１７０は、第１の時刻と第２の時刻が、ユーザーの歩行動作が行われた期間内の時刻とする。角度情報の周期的な時間変化パターンは、ユーザーの歩行動作に起因するので、ユーザーが歩行していない場合、オフセット推定部１７０は、第１の時刻および第２の時刻を決定することができなくなるか、または意味の無い時刻を決定してしまう。そこで、オフセット推定部１７０は、ユーザーの歩行動作が検出されたことに応じて、第１の時刻および第２の時刻を決定することで、無駄な動作を省くことができる。
【００６６】
ここでは、歩行動作検出部１４０の出力に応じて、第１の時刻と第２の時刻を決定する例を述べている。角度情報の周期的な時間変化パターン、角速度センサ出力信号、および角速度センサ出力信号に予め定められた信号処理を施した信号等の周期的な時間変化パターンは、ユーザーの歩行動作に起因するので、オフセット推定部１７０は、ユーザーの歩行動作に由来する信号に応じて、第１の時刻と第２の時刻を決定してもよい。例えば、オフセット推定部１７０は、角加速度信号の最大値や最小値が検出されたタイミングに応じて、第１の時刻と第２の時刻を決定してもよい。
【００６７】
また、オフセット推定部１７０は、第１の時刻と第２の時刻の時間間隔を、ユーザーの歩数の時間間隔とする。オフセット推定部１７０は、一例として、当該時間間隔を、当該ユーザの歩行動作周期の略定数倍の時間間隔とする。角度情報の周期的な時間変化パターンは、ユーザーの歩行動作に起因するので、第１の時刻と第２の時刻の時間間隔は、ユーザーの歩行動作周期の略定数倍となる。したがって、オフセット推定部１７０は、一例として、決定した第１の時刻と第２の時刻の時間間隔がユーザーの歩行動作周期の略定数倍にならなかった場合、誤検出したものとして、第１および第２の時刻の決定動作を再び実行してよい。
【００６８】
また、角度情報算出部１６０は、時間積算した角度情報から、周期的な変化パターンを検出するパターン検出部を有してもよい。パターン検出部は、例えば、フーリエ変換等を実行して、角度情報に周期的な信号成分が含まれているか否かを検出する。これに代えて、パターン検出部は、角度情報において、角度情報の平均値とは異なる角度の値が一定間隔で繰り返し発生することに応じて、当該角度情報に周期的な信号成分が含まれていることを検出する。また、パターン検出部は、時間積算した角度情報に代えて、取得部１２０から受け取る角速度センサ１１２の出力信号から周期的な変化パターンを検出してもよい。
【００６９】
パターン検出部は、検出した結果をオフセット推定部１７０に送信する。この場合、オフセット推定部１７０は、パターン検出部が周期的な変化パターンを検出したことに応じて、第１の時刻および第２の時刻を決定する。
【００７０】
また、角度情報の周期的な時間変化パターンは、角速度センサ１１２の出力信号を時間積算することによって強調されるので、オフセット推定部１７０は、オフセットが時間的に安定である場合、第１の時刻と第２の時刻の時間間隔をユーザーの歩行動作周期の略４倍以上、好ましくは略１０倍以上、より好ましくは略２０倍程度にする。これによって、オフセット推定部１７０は、オフセットの推定誤差を低減させることができる。
【００７１】
以上のように、本実施形態のオフセット推定部１７０は、第１の時刻および第２の時刻を決定することで、角度情報の波形に重畳された略一定の傾きを取得することができる。これにより、オフセット推定部１７０は、略一定の傾きに対応する角速度センサ１１２のオフセットを推定することができる。また、携帯機器１０は、推定されたオフセットに応じて、当該略一定の傾きが０となるように対応する角速度センサ１１２のオフセットを補正してよい。
【００７２】
より具体的には、オフセット推定部１７０は、第１の時刻と第２の時刻の間の角速度センサの各軸の出力から算出した各積算角度を、第１の時刻と第２の時刻までの積算時間で除算することにより求めてよい。
【００７３】
ここで、オフセット推定部１７０は、複数の角速度センサ１１２の各回転軸のオフセットを推定し、制御部１８０は保持状態判定部１３０の判定結果に応じた回転軸を選択し、当該選択した回転軸のオフセット推定結果をオフセット推定部１７０から出力させてよい。例えば、ユーザーが携帯機器１０を手に持って腕を振りながら歩行している場合、歩行動作による角度情報の周期的な時間変化パターンと、腕を振ることによって生じる周期的な時間変化パターンとが重畳されるので、オフセット推定部１７０は、正確なオフセット推定を実行することが困難になることがある。
【００７４】
そこで、制御部１８０は、例えば、オフセットの推定が困難な保持状態の判定結果の場合、オフセット推定部１７０の推定結果は出力させずに、前回の推定結果を出力させる。また、ユーザーが携帯機器１０を手に持って腕を振りながら歩行している場合であっても、腕を振っている面と垂直な方向に回転軸がある場合、当該回転軸方向には腕振りによる周期的な時間変化パターンは生じにくい。そこで、制御部１８０は、保持状態の判定結果に応じて、誤差が増大しないことが予想される回転軸を選択して、オフセット推定部１７０から選択した回転軸のオフセット推定結果を出力させてもよい。
【００７５】
また、オフセット推定部１７０は、第１の時刻および第２の時刻の間の角速度センサ出力信号、角速度センサ出力信号から算出された時間積算された角度情報、角速度センサ出力信号に予め定められた信号処理を施した信号、および周期的な変化パターンの各周期毎の角速度に基づく信号等のうち、一つまたは複数組み合せた情報を用いて、第１の時刻および第２の時刻の間の周期的な時間変化パターンが乱れているか否かを判断してもよい。オフセット推定部１７０は、時間変化パターンが乱れていると判断する場合には、オフセット推定を行わないまたは推定されたオフセットの信頼性が低いと判断して推定結果を除外してもよい。
【００７６】
また、オフセット推定部１７０は、推定した結果を第２の時刻より以前に推定した結果と比較してもよい。オフセット推定部１７０は、例えば、保持しておいた推定結果の平均値と最新の推定結果の差異が予め定められた閾値以上の場合は、信頼性が低いと判断して推定結果を除外してもよい。また、オフセット推定部１７０は、最新の推定結果と直近の推定結果と、これらにそれぞれ対応する、角速度センサ出力信号、角速度センサ出力信号から算出された時間積算された角度情報、角速度センサ出力信号に予め定められた信号処理を施した信号、および周期的な変化パターンの各周期毎の角速度に基づく信号から、最新の推定結果と直近の推定結果のどちらが最適な推定結果であるかを決定して推定結果としてもよい。なお、ここで述べた過去の推定結果の平均値と最新の推定結果の差異を取得する手法などは、一例であり、分散値を用いるなど推定された結果の信頼性を取得する手法であればどのような手法でもよいことは明らかである。
【００７７】
また、制御部１８０は、保持状態判定部１３０の判定結果に応じて携帯機器１０の保持状態の変化がない期間を検出し、当該期間における角速度センサ１１２の出力信号に基づき角速度センサ１１２のオフセットをオフセット推定部１７０に推定させてもよい。即ち、制御部１８０は、例えば、図４の第１状態と第２状態の間の期間、および第２状態と第３状態の間の期間といった保持状態の変化期間におけるオフセット推定は誤差が大きいものとして推定結果を除外するか、またはオフセット推定を停止させる。これによって、制御部１８０は、一定の保持状態におけるオフセット推定を採用して推定誤差を低減させることができる。
【００７８】
以上の本実施形態に係るオフセット推定装置１００によれば、携帯機器１０の保持状態に応じて、オフセットを推定すべき回転軸方向を選択して、選択した回転軸方向に対応する角速度センサ１１２のオフセットを推定することができる。これによって、オフセット推定装置１００は、歩行中のユーザーが手に持つ携帯機器１０の静止状態を待たなくても、角速度センサ１１２の出力変動の影響を低減させ、かつ、短時間でより正確なオフセットを推定することができる。したがって、オフセット推定装置１００は、角速度センサ１１２のオフセットが経時的に変化しても、定期的にオフセットを推定することができ、当該角速度センサ１１２の測定精度の低下を防止することができる。
【００７９】
図６は、本実施形態に係るオフセット推定装置１００の変形例を示す。本変形例のオフセット推定装置１００において、図２に示された本実施形態に係るオフセット推定装置１００の動作と略同一のものには同一の符号を付け、説明を省略する。本変形例のオフセット推定装置１００は、保持状態変化検知部６１０と、進行方向判定部６２０を備える。
【００８０】
保持状態変化検知部６１０は、取得部１２０に接続され、複数のセンサ１１０の出力信号から携帯機器１０の保持状態の変化を検知する。即ち、保持状態変化検知部６１０は、保持状態判定部１３０のように、携帯機器１０の保持状態そのものは判定しないが、保持状態が変化したことを検知する。保持状態変化検知部６１０は、一例として、図４の第１状態と第２状態の間の期間、および第２状態と第３状態の間の期間といった保持状態の変化に起因する出力信号の変動を検知する。
【００８１】
この場合、保持状態変化検知部６１０は、例えば、予め定められた閾値の範囲を超える変動があったか否かにより、当該出力信号の変動を検知する。これに代えて、保持状態変化検知部６１０は、出力信号を順次記憶していき、取得部１２０から受け取った出力信号と、記憶した過去に受け取った出力信号とを比較して、当該出力信号の変動を検知してもよい。保持状態変化検知部６１０は、検知した保持状態の変化を、制御部１８０に送信する。
【００８２】
制御部１８０は、保持状態変化検知部６１０の検知結果に応じて、オフセット推定部１７０が角速度センサ１１２のオフセットを推定するか否かを制御する。制御部１８０は、例えば、保持状態が変化している期間はオフセット推定部１７０のオフセット推定を停止する。制御部１８０は、保持状態が変化している期間は、保持状態が変化する前にオフセット推定部１７０が推定したオフセットを、オフセット推定部１７０から出力させてもよい。
【００８３】
角速度センサ１１２は、保持状態が変化している期間において、保持状態の変化に起因する出力信号の変動と、ユーザーの歩行動作に起因する出力信号の変動とを重畳させた信号を出力する。オフセット推定部１７０は、このような出力信号に応じた積算角度の情報を受け取っても、ユーザーの歩行動作に起因する信号成分を分離することは困難なので、制御部１８０は、当該期間におけるオフセット推定動作を停止して、推定誤差の悪化を防止する。
【００８４】
また、制御部１８０は、保持状態変化検知部６１０の検知結果に応じて携帯機器１０の保持状態の変化がない期間を検出し、当該期間における角速度センサ１１２の出力信号に基づき角速度センサ１１２のオフセットをオフセット推定部１７０に推定させてもよい。これによって、オフセット推定部１７０は、保持状態の変化に起因する出力信号の変動が重畳していない信号に基づき、オフセットを推定できるので、精度の高いオフセット推定を実行することができる。
【００８５】
進行方向判定部６２０は、ユーザーの進行方向を判定する。進行方向判定部６２０は、取得部１２０に接続され、複数のセンサ１１０の出力信号からユーザーが直進しているか否かを判定する。進行方向判定部６２０は、一例として、加速度センサの出力信号が略一定の周期で変動し、かつ、角速度センサ１１２の出力信号の変動が予め定められた閾値よりも低い場合に、ユーザーが直進していると判定する。進行方向判定部６２０は、判定結果を制御部１８０に送信する。ここでは、進行方向判定部６２０が、角速度センサ１１２の出力信号の変動が予め定められた閾値よりも低い場合に、ユーザーが直進していると判定するという例を示したが、これに加えて、またはこれに代えて、次のように判定してもよい。
【００８６】
例えば、進行方向判定部６２０は、角速度センサ１１２の出力信号にローパスフィルタを介した信号、または同等の効果をもたらす信号処理を施した信号と角速度センサ出力信号の差が予め定められた閾値以内に収まっている場合に、ユーザーが直進していると判断する。また、進行方向判定部６２０は、角速度センサ１１２の出力信号における周期的なパターンの予め定められた周期分の時間積算角度を算出し、算出した積算角度が予め定められた閾値以内に収まっている場合に、ユーザーが直進していると判断することも可能である。
【００８７】
また、その他の手段として、進行方向判定部６２０は、マップマッチング手法を用いたユーザーの歩行軌跡から、第１の時刻と第２の時刻の間に直進しているか否かの判断をする手法を用いてもよいし、他の測位手段、例えばＧＰＳ、ＷｉＦｉ測位などによるユーザーの歩行軌跡から、直進しているか否かの判断をする手法を用いてもよい。さらに、進行方向判定部６２０は、磁気センサ等を用いて第１の時刻と第２の時刻の間に直進しているか否かの判断をしてもよい。
【００８８】
制御部１８０は、進行方向判定部６２０の判定結果に応じて、ユーザーの進行方向が直進方向である期間を検知し、当該期間における角速度センサ１１２の出力信号に基づき角速度センサ１１２のオフセットをオフセット推定部１７０に推定させる。角速度センサ１１２は、歩行しているユーザーの進行方向が変化している期間において、進行方向の変化に起因する出力信号の変動と、ユーザーの歩行動作に起因する出力信号の変動とを重畳させた信号を出力する。
【００８９】
オフセット推定部１７０は、このような出力信号に応じた積算角度の情報を受け取っても、ユーザーの歩行動作に起因する信号成分を分離することは困難なので、制御部１８０は、ユーザーが直進していることを条件に、オフセット推定部１７０のオフセット推定を実行させる。これによって、オフセット推定部１７０は、ユーザーの進行方向の変化に起因する出力信号の変動が重畳していない信号に基づき、オフセットを推定できるので、精度の高いオフセット推定を実行することができる。
【００９０】
また、制御部１８０は、ユーザーの進行方向が直進方向ではない期間に角速度センサ１１２から出力された出力信号の一部または全部を用いずに、算出された角度情報に応じて角速度センサ１１２のオフセットをオフセット推定部１７０に推定させる。この場合、制御部１８０は、当該直進方向ではない期間におけるオフセット推定動作を停止して、オフセット推定部１７０の推定誤差の悪化を防止してもよい。また、制御部１８０は、進行方向が変化している期間は、進行方向が変化する前にオフセット推定部１７０が推定したオフセットを、オフセット推定部１７０から出力させてもよい。
【００９１】
以上の本変形例のオフセット推定装置１００は、保持状態の変化またはユーザーの進行方向の検出結果に応じて、オフセット推定を実行するか否かを判断する。これによって、オフセット推定装置１００は、より精度の高いオフセット推定を実行することができる。
【００９２】
以上の本実施形態のオフセット推定装置１００は、角速度センサ１１２からの出力が、加速度センサの変動に比べて小さくなっても、角速度センサ１１２の出力信号を時間積算することで、周期的な変動を有するか否かを判断することが容易になることを説明した。ここで、角速度センサ１１２は、ユーザーの歩行の状況によっては、周期的な変動を有するか否かを判断するのに十分な変動を出力する場合がある。このような場合、オフセット推定装置１００は、角速度センサ１１２の出力信号の変動を用いて（即ち、出力信号の時間積算なしに）、周期的な変動を有するか否かを判断してもよい。
【００９３】
図７は、本実施形態に係るオフセット推定装置１００の第２の変形例を示す。本変形例のオフセット推定装置１００において、図２に示された本実施形態に係るオフセット推定装置１００の動作と略同一のものには同一の符号を付け、説明を省略する。本変形例のオフセット推定装置１００は、図２に示された本実施形態に係るオフセット推定装置１００から角度情報算出部１６０を除いた構成例を示す。
【００９４】
即ち、本変形例のオフセット推定部１７０は、取得部１２０に接続され、角速度センサ１１２の出力信号の変化に応じて当該角速度センサ１１２のオフセットを推定する。この場合、オフセット推定部１７０は、角速度センサ１１２の出力信号の変動が加速度センサの変動等に比べて小さい場合、一例として、ローパスフィルタなどの信号処理を実行することにより、角速度センサ１１２の変動が周期的な変動を有するか否かを判断することも可能である。
【００９５】
より具体的には、オフセット推定部１７０は、角速度センサ１１２の出力信号に含まれる第１の交流成分のレベルが巡回する期間における第１の交流成分に基づき、角速度センサ１１２のオフセットを推定する。この場合、オフセット推定部１７０は、第１の交流成分のレベルが巡回する期間における第１の交流成分のレベルに応じて、角速度センサ１１２のオフセットを推定してよい。
【００９６】
ここで、交流成分とは、例えば、携帯機器１０を保持するユーザの歩行動作および／または動き等に応じた出力の変動、波打ち、およびレベルの巡回等を意味し、角速度センサ１１２の熱雑音等は除くものとする。また、レベルの巡回とは、一例として、電圧レベルが変動している場合において、当該電圧レベルが、予め定められた電圧レベルを通過してから再び予め定められた電圧レベルに戻る過程を意味する。
【００９７】
例えば、オフセット推定部１７０は、角速度センサ１１２の出力信号の周期的な変化パターンの一つの周期内（即ち、出力レベルが１回巡回する間）において、最大値、平均値、または最小値などの予め定められた値となる時刻を第１の時刻とする。そして、オフセット推定部１７０は、周期的な変化パターンの次の周期内において、角速度センサ１１２の出力信号が当該予め定められた値（即ち、第１の時刻を定めた電圧レベル）となる時刻を第２の時刻としてもよい。また、この場合において、オフセット推定部１７０は、角速度センサ１１２の出力信号に例えばローパスフィルタなどの信号処理を実行してから、第１の時刻、および第２の時刻を定めてもよい。
【００９８】
角速度センサ出力信号および角速度センサ出力信号に予め定められた信号処理を施した信号等の周期的な時間変化パターンは、ユーザーの歩行動作に起因するので、オフセット推定部１７０は、このように、当該ユーザーの歩行動作に由来する信号に応じて、第１の時刻と第２の時刻を決定してよい。また、オフセット推定部１７０は、例えば、角加速度信号の最大値や最小値が検出されたタイミングに応じて、第１の時刻と第２の時刻を決定してもよい。
【００９９】
オフセット推定部１７０は、第１の時刻と第２の時刻の間の角速度センサ１１２の各軸の出力を各々積算した積算値を、積算した時間または積算個数で除算することにより、角速度センサ１１２のオフセットを推定することができる。これに代えて、オフセット推定部１７０は、第１の時刻と第２の時刻の間の角速度センサ１１２の各軸の出力に応じた角加速度を算出し、算出に用いた時間間隔または積算個数で除算することにより、角速度センサ１１２のオフセットを推定してもよい。
【０１００】
また、オフセット推定部１７０は、第１の交流成分のレベルが巡回する期間における第１の交流成分のレベル平均を演算し、角速度センサ１１２のオフセットを推定してもよい。例えば、オフセット推定部１７０は、第１の交流成分の第１のピークから第２のピークまでのレベル平均を演算することによって、角速度センサ１１２のオフセットを推定する。ここで、第１のピークおよび第２のピークは、それぞれ第１の交流成分の極大値または極小値でよい。
【０１０１】
なお、本実施形態に係るオフセット推定装置１００の第２の変形例において、角速度センサ１１２が第１の交流成分を出力信号に含むことを説明した。ここで、第１の交流成分を積分（積算）すると、角速度センサ１１２が出力する角度情報となる。即ち、図２および図６で説明した本実施形態のオフセット推定装置１００が備える角度情報算出部１６０は、第１の交流成分を積分した第２の交流成分のレベルを角度情報として算出する。
【０１０２】
即ち、第１の交流成分または第２の交流成分は、ユーザーの動きに同期する成分である。また、第１の交流成分または第２の交流成分は、ユーザーの歩行動作に同期する成分である。
【０１０３】
したがって、この場合、オフセット推定部１７０は、第１の交流成分のレベルが巡回する期間における第１の交流成分を積分した第２の交流成分のレベルに応じて、角速度センサ１１２のオフセットを推定することになる。即ち、例えば、オフセット推定部１７０は、第２の交流成分のレベルが巡回する期間における角度情報の変化量から、オフセットを推定する。
【０１０４】
より具体的には、オフセット推定部１７０は、角度情報のうち、第２の交流成分が第１のピークを有する第１のレベルから第２の交流成分が第２のピークを有する第２のレベルまでの差分から、オフセットを推定する。ここで、第１のピークおよび第２のピークは、それぞれ第２の交流成分の極大値または極小値であってよい。
【０１０５】
図８は、本実施形態に係るオフセット推定装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、例えば、携帯機器１０の内部に搭載される。これに代えて、コンピュータ１９００は、携帯機器１０の外部に備えられ、携帯機器１０からのセンサ出力を受信して、オフセット推定結果等を携帯機器１０に送信してもよい。この場合、コンピュータ１９００は、一例として、携帯機器１０と無線で送受信する。
【０１０６】
コンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、および表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、記憶部２０４０、入出力部２０６０と、ＲＯＭ２０１０と、カードスロット２０５０と、入出力チップ２０７０とを備える。
【０１０７】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００およびグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０およびＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【０１０８】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、記憶部２０４０、入出力部２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。記憶部２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラムおよびデータを格納する。記憶部２０４０は、不揮発性メモリであり、例えば、フラッシュメモリまたはハードディスク等である。
【０１０９】
入出力部２０６０は、コネクタ２０９５と接続され、外部とプログラムまたはデータを送受信し、ＲＡＭ２０２０を介して記憶部２０４０に提供する。入出力部２０６０は、規格化されたコネクタおよび通信方式で外部と送受信してよく、この場合、入出力部２０６０は、ＵＳＢ、ＩＥＥＥ１３９４、ＨＤＭＩ（登録商標）、またはＴｈｕｎｄｅｒｂｏｌｔ（登録商標）等の規格を用いてよい。また、入出力部２０６０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の無線通信規格を用いて外部と送受信してもよい。
【０１１０】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、カードスロット２０５０、および入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、および／または、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。カードスロット２０５０は、メモリカード２０９０からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介して記憶部２０４０に提供する。入出力チップ２０７０は、カードスロット２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続してもよい。
【０１１１】
ＲＡＭ２０２０を介して記憶部２０４０に提供されるプログラムは、入出力部２０６０を介して、またはメモリカード２０９０等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内の記憶部２０４０にインストールされ、ＣＰＵ２０００において実行される。
【０１１２】
プログラムは、コンピュータ１９００にインストールされ、コンピュータ１９００を取得部１２０、保持状態判定部１３０、歩行動作検出部１４０、パターン記憶部１５０、角度情報算出部１６０、オフセット推定部１７０、制御部１８０、保持状態変化検知部６１０、および進行方向判定部６２０として機能させる。
【０１１３】
プログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部１２０、保持状態判定部１３０、歩行動作検出部１４０、パターン記憶部１５０、角度情報算出部１６０、オフセット推定部１７０、制御部１８０、保持状態変化検知部６１０、および進行方向判定部６２０として機能させる。そして、この具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有のオフセット推定装置１００が構築される。
【０１１４】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、記憶部２０４０、メモリカード２０９０、または入出力部２０６０を介して接続される記憶装置等に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置または通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【０１１５】
また、ＣＰＵ２０００は、記憶部２０４０、メモリカード２０９０、または入出力部２０６０を介して接続される記憶装置等に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、および／または記憶装置に含まれるものとする。
【０１１６】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（または不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１１７】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、予め定められた条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１１８】
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、メモリカード２０９０の他に、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）、またはＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１１９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
【０１２０】
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１２１】
１０  携帯機器、１２  表示部、１００  オフセット推定装置、１１０  センサ、１１２  角速度センサ、１２０  取得部、１３０  保持状態判定部、１３２  算出部、１３４  特徴量対応判定部、１４０  歩行動作検出部、１５０  パターン記憶部、１６０  角度情報算出部、１７０  オフセット推定部、１８０  制御部、６１０  保持状態変化検知部、６２０  進行方向判定部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  記憶部、２０５０  カードスロット、２０６０  入出力部、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  メモリカード、２０９５  コネクタ
【図１】
0006033418.tif 000002
【図２】
0006033418.tif 000003
【図３】
0006033418.tif 000004
【図４】
0006033418.tif 000005
【図５】
0006033418.tif 000006
【図６】
0006033418.tif 000007
【図７】
0006033418.tif 000008
【図８】
0006033418.tif 000009