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