(57)【要約】  ユーザが保持する携帯機器を左右に移動させつつ進行しても、当該携帯機器からのセンサ信号に基づき正確なユーザの進行方向を推定する。ユーザの進行方向を算出する進行方向推定部と、ユーザが保持する携帯機器の重力軸周りの回転量を算出する回転量算出部と、進行方向推定部および回転量算出部に接続され、回転量の積算値に基づいて、進行方向推定部が算出した進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択する選択部と、を備える進行方向情報出力装置、進行方向情報出力方法、およびプログラムを提供する。
2015107853.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの進行方向を推定する進行方向推定部と、
前記ユーザが保持する携帯機器の重力軸周りの回転量を算出する回転量算出部と、
前記回転量の積算値に基づいて、前記進行方向推定部が算出した進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択する選択部と、
を備える進行方向情報出力装置。
【請求項２】
前記進行方向推定部は、前記携帯機器が備えるセンサからのセンサ信号を入力して、当該センサ信号に基づいて前記ユーザの進行方向を推定する請求項１に記載の進行方向情報出力装置。
【請求項３】
前記センサは、角速度センサ、加速度センサ、および地磁気センサのうち、少なくとも１つを含む請求項２に記載の進行方向情報出力装置。
【請求項４】
前記選択部は、予め定められた第１時間間隔の間の前記回転量の積算値が予め定められた第１基準積算回転量以上であることを条件として、前記出力済の進行方向情報を維持することを選択し、前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量未満であることを条件として、前記進行方向推定部が推定した進行方向に応じた進行方向情報を出力することを選択する請求項１から３のいずれか一項に記載の進行方向情報出力装置。
【請求項５】
前記選択部は、予め定められた第１インターバル毎に、出力すべき進行方向情報の選択を順次実行し、
前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量以上であることを条件として、出力済の前記進行方向を維持し続ける請求項４に記載の進行方向情報出力装置。
【請求項６】
前記選択部は、前記第１時間間隔と比較して前記第１インターバルをより短い時間間隔とする請求項５に記載の進行方向情報出力装置。
【請求項７】
前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量以上の場合に、前記第１時間間隔よりも長い予め定められた第２時間間隔の間の前記回転量の積算値と予め定められた第２基準積算回転量を比較するターン判断部を備え、
前記選択部は、前記ターン判断部の出力に基づいて前記進行方向推定部が算出した進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択する請求項４から６のいずれか一項に記載の進行方向情報出力装置。
【請求項８】
前記ターン判断部は、前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量以上の場合において、前記第２時間間隔の間の前記回転量の積算値が、前記第２基準積算回転量以上であることを条件として、前記ユーザが進行方向を変更したことを判断する請求項７に記載の進行方向情報出力装置。
【請求項９】
前記ターン判断部は、前記第２時間間隔の間に含まれる前記第１時間間隔の間の前記回転量の回転方向が、全て一方向に向いていることを更に条件として、前記ユーザの進行方向の変更を判断する請求項８に記載の進行方向情報出力装置。
【請求項１０】
前記選択部は、前記ターン判断部が前記ユーザの進行方向変更を判断したことに応じて、前記進行方向推定部が推定した進行方向に応じた進行方向情報の出力を選択する請求項８または９に記載の進行方向情報出力装置。
【請求項１１】
前記ターン判断部は、前記ユーザの進行方向変更を判断した場合、出力済の前記進行方向に前記第２時間間隔の間の前記回転量の積算値を加えた進行方向を、選択すべき前記進行方向情報として前記選択部に供給する請求項８から１０のいずれか一項に記載の進行方向情報出力装置。
【請求項１２】
前記ターン判断部は、前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量以上の場合において、予め定められた第２インターバル毎に、前記ユーザが進行方向を変更したか否かを判断する請求項８から１１のいずれか一項に記載の進行方向情報出力装置。
【請求項１３】
前記ターン判断部は、前記進行方向推定部の出力済の前記進行方向情報を維持し続けた後に、前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量未満となった場合で、かつ、前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量未満の状態から前記第１基準積算回転量以上となった時刻から前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量未満となった時刻までの時間間隔の間の前記回転量の積算値が第３基準積算回転量以上であることを条件として、前記ユーザが進行方向を変更したことを更に判断する請求項８から１２のいずれか一項に記載の進行方向情報出力装置。
【請求項１４】
前記ターン判断部は、前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量以上の場合において、前記第２時間間隔の間の前記回転量の積算値が、前記第２基準積算回転量未満であることを条件として、前記ユーザが進行方向を変更していないと判断する請求項７から１３のいずれか一項に記載の進行方向情報出力装置。
【請求項１５】
前記選択部は、前記ターン判断部が前記ユーザの進行方向が変更されていないと判断したことに応じて、前記出力済の進行方向情報を維持した進行方向情報の出力を選択する請求項１４に記載の進行方向情報出力装置。
【請求項１６】
前記第１時間間隔は前記第２時間間隔よりも短い間隔であり、
前記選択部は、予め定められた第１インターバル毎に、出力すべき進行方向情報の選択を順次実行し、
前記第１インターバル毎に算出される複数の前記回転量の積算値のうち、少なくとも一の回転量の積算値に対応する前記第１時間間隔の開始時刻および終了時刻は、前記第２時間間隔の開始時刻以上、終了時刻以下の間に経過する請求項７から１５のいずれか一項に記載の進行方向情報出力装置。
【請求項１７】
前記選択部は、予め定められた第１時間間隔の間の前記回転量の積算値と、予め定められた時間間隔で前記第１時間間隔よりも長い間隔である第２時間間隔の間の前記回転量の積算値に基づいて、前記進行方向推定部が算出した進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択する請求項１から３のいずれか一項に記載の進行方向情報出力装置。
【請求項１８】
前記選択部は、
前記第１時間間隔の間の前記回転量の積算値が第１基準積算回転量以上であり、かつ、前記第２時間間隔の間の前記回転量の積算値が第２基準積算回転量未満の場合には、出力済の進行方向情報を維持した進行方向情報を出力し、
前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量以上であり、かつ、前記第２時間間隔の間の前記回転量の積算値が第２基準積算回転量以上の場合には、前記進行方向推定部が算出した進行方向に応じた進行方向情報を出力する請求項１７に記載の進行方向情報出力装置。
【請求項１９】
前記選択部は、前記第１時間間隔の間の前記回転量の積算値が前記第１基準積算回転量以上であり、かつ、前記第２時間間隔の間の前記回転量の積算値が第２基準積算回転量以上の場合には、出力済の前記進行方向に前記第２時間間隔の間の前記回転量の積算値を加えた進行方向を、前記進行方向推定部が算出した進行方向に応じた進行方向情報として出力する請求項１８に記載の進行方向情報出力装置。
【請求項２０】
前記選択部は、前記第１時間間隔の間の前記回転量の積算値が第１基準積算回転量未満の場合には、前記進行方向推定部が推定した進行方向に応じた進行方向情報を出力する請求項１７から１９のいずれか一項に記載の進行方向情報出力装置。
【請求項２１】
前記選択部は、予め定められた第１インターバル毎に、出力すべき進行方向情報の選択を順次実行し、
前記第１インターバル毎に算出される複数の前記回転量の積算値のうち、少なくとも一の回転量の積算値に対応する前記第１時間間隔の開始時刻および終了時刻は、前記第２時間間隔の開始時刻以上、終了時刻以下の間に経過する請求項１７から２０のいずれか一項に記載の進行方向情報出力装置。
【請求項２２】
請求項１から２１のいずれか一項に記載の進行方向情報出力装置と、
前記ユーザの初期位置と、地図情報とを記憶する記憶部と、
前記進行方向情報出力装置から出力される前記初期位置からの前記ユーザの進行方向情報に応じた移動量に基づいて、前記ユーザの地図上の位置を決定する位置決定部と
を備えるマップマッチング装置。
【請求項２３】
ユーザの進行方向を推定することと、
前記ユーザが保持する携帯機器の重力軸周りの回転量の積算値を算出することと、
前記回転量の積算値に基づいて、算出した前記ユーザの進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択することと、
を備える進行方向情報出力方法。
【請求項２４】
ユーザの進行方向を推定することと、
前記ユーザが保持する携帯機器が地面と平行な方向に行ったり来たりするように振れているか否かに基づいて、算出した前記ユーザの進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択することと、
を備える進行方向情報出力方法。
【請求項２５】
コンピュータを、請求項１から２１のいずれか一項に記載の進行方向情報出力装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、進行方向情報出力装置、マップマッチング装置、進行方向情報出力方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、携帯機器等に搭載されたセンサ等の出力に応じて、当該携帯機器を保持するユーザの進行方向を推定する進行方向推定装置が知られていた（例えば、特許文献１参照）。このようなユーザの進行方向を推定する進行方向推定装置は、携帯ナビゲーションにおいて広く利用されてきた。
［特許文献１］  特開２０１２−１４５４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ところで、携帯ナビゲーションを利用するユーザは、目標物を探すために、進行方向を変化させずに、左右を見渡しながら歩行することが多い。すると、ユーザが保持する携帯端末もこのユーザの左右を見る動作に応じて左右に振れるため、特許文献１に記載の進行方向推定装置は、ユーザの進行方向を変化させずに左右を見る動作をユーザの進行方向変化として誤って判定してしまうという問題があった。更に、ユーザが進行方向を変更したのか否かが不正確なままマップマッチング等でユーザの位置を推定すると、ユーザが進行する道路の選択ミスが生じてしまい、推定位置の誤差がより大きくなってしまう場合があった。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、ユーザの進行方向を算出する進行方向推定部と、ユーザが保持する携帯機器の重力軸周りの回転量を算出する回転量算出部と、回転量の積算値に基づいて、進行方向推定部が算出した進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択する選択部と、を備える進行方向情報出力装置、進行方向情報出力方法、およびプログラムを提供する。【０００５】
本発明の第２の態様においては、進行方向情報出力装置と、ユーザの初期位置と、地図情報とを記憶する記憶部と、進行方向情報出力装置から出力される初期位置からのユーザの進行方向情報に応じた移動量に基づいて、記ユーザの地図上の位置を決定する位置決定部とを備えるマップマッチング装置を提供する。【０００６】
本発明の第３の態様においては、ユーザの進行方向を推定することと、ユーザが保持する携帯機器が地面と平行な方向に行ったり来たりするように振れているか否かに基づいて、算出したユーザの進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択することと、を備える進行方向情報出力方法を提供する。【０００７】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る携帯機器１０の一例を示す。
【図２】本実施形態に係る進行方向情報出力装置１００の構成例をセンサ２０と共に示す。
【図３】本実施形態に係る進行方向情報出力装置１００の動作フローを示す。
【図４】本実施形態に係る携帯機器１０を保持するユーザ３０の一例を示す。
【図５】本実施形態に係る進行方向情報出力装置１００の時間軸に応じた動作の一例を示す。
【図６】本実施形態に係るマップマッチング装置２００の構成例を示す。
【図７】本実施形態に係る進行方向情報出力装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、本実施形態に係る携帯機器１０の一例を示す。携帯機器１０は、複数のセンサを搭載し、当該携帯機器１０の動き、保持状態、および位置等を検出する。携帯機器１０は、自身に搭載されたセンサ等の出力に応じて、当該携帯機器１０の現在位置および目的地までの経路等を表示する自律航法システムを備える。これに加えて、携帯機器１０は、マップマッチング機能を更に備え、マップマッチング装置として機能してもよい。
【００１１】
携帯機器１０は、一例として、外部の装置およびインターネット等に接続するための通信機能、ならびにプログラムを実行するためのデータ処理機能等を備える。携帯機器１０は、例えば、スマートフォン、携帯電話、タブレット型ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、携帯型ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）装置、または小型ＰＣ等である。携帯機器１０は、表示部１２を備える。
【００１２】
表示部１２は、例えば、インターネットのＷＥＢページ、電子メール、地図、文書・音楽・動画・画像データ等を操作する画面を、ユーザの指示に応じて表示する。また、表示部１２は、例えば、ユーザの指示が入力されるタッチパネルディスプレイであり、ユーザからのタッチ入力によってブラウザ等のソフトウェアの操作画面にユーザの指示が入力される。これに代えて、携帯機器１０は、ジェスチャ入力でユーザの指示が入力されてもよい。これに代えて、携帯機器１０は、キーボード、マウス、および／またはジョイスティック等の入力デバイスによってユーザの指示が入力されてもよい。
【００１３】
ここで、本実施形態に係る携帯機器１０において、表示部１２の表示面と平行な面をｘｙ平面とし、当該表示面に対して垂直方向をｚ軸とする例を説明する。また、本実施形態に係る携帯機器１０において、表示部１２が縦長の長方形の形状を有する例を説明する。そして、当該長方形の２組の向かい合う辺のうち、短い方の辺に沿う方向（横方向）をｘ軸とし、長い方の辺に沿う方向（縦方向）をｙ軸とする。
【００１４】
即ち、ユーザが携帯機器１０を手に保持して表示部１２を見た場合、水平方向はｘ軸と略平行となり、ユーザが立つ鉛直方向（即ち、重力方向）はｙｚ平面と略平行となる例を説明する。この場合、ユーザが携帯機器１０を電話として用い、耳に当てて通話する場合、ユーザが向く進行方向とｘｙ平面とは略平行となり、当該進行方向に対して垂直な面とｚ軸とが略平行となる。
【００１５】
このような本実施形態の携帯機器１０は、複数の測位方法システムを用いて、当該携帯機器１０を保持するユーザの位置情報を表示部１２に表示する。携帯機器１０は、例えば、複数のＧＰＳ衛星からの送信信号を受信できる場合、ＧＰＳ機能を用いて、ユーザの位置情報を表示する。また、携帯機器１０は、複数のＧＰＳ衛星からの送信信号を受信できない場合、ＧＰＳから自律航法システムに切り替えて、ＧＰＳで取得した位置情報をユーザの初期位置として用い、ユーザの位置情報の推定を継続して表示してもよい。
【００１６】
これに代えて、携帯機器１０は、ユーザの入力に応じて自律航法システムを開始してもよい。この場合、携帯機器１０は、ユーザの初期位置の情報も当該ユーザの入力によって取得してよい。また、携帯機器１０は、マップマッチングを実行して、地図情報と共にユーザの位置情報を表示してよい。
【００１７】
ユーザがこのような携帯機器１０を保持して歩行する場合、当該携帯機器１０がユーザの進行方向とは異なる方向に移動することがある。例えば、ユーザが表示部１２に表示された地図を確認しながら歩行する場合、または、ユーザが商店街等に面した道路において商品を眺めながら歩行する場合、当該ユーザは携帯機器１０の位置を左右に移動させつつ進行することがある。また、ユーザが蛇行して歩行する場合、携帯機器１０の位置は進行方向だけではなく、進行方向に対して左右方向にも移動することになる。
【００１８】
このように進行方向とは異なる方向に移動する携帯機器１０からのセンサ信号に基づいて当該携帯機器１０の進行方向を推定すると、携帯機器１０の向きに応じて時々刻々と進行方向が変化してしまうことになる。即ち、ユーザの進行方向とは異なる向きに進行方向が次々に変化するので、推定精度が低減し、現在位置との誤差が生じてしまう。
【００１９】
また、携帯機器１０がマップマッチング機能を実行すると、当該機能は推定した進行方向に応じてユーザの歩行中の道路を決定するので、ユーザの現在位置の推定誤差がさらに大きくなってしまう場合がある。そこで、本実施形態の携帯機器１０は、当該携帯機器１０が進行方向とは異なる方向に変動しても、進行方向の推定精度が低減することを防止する進行方向情報出力装置を備える。
【００２０】
図２は、本実施形態に係る進行方向情報出力装置１００の構成例をセンサ２０と共に示す。センサ２０は、携帯機器１０に搭載された、角速度センサ、加速度センサ、および地磁気センサのうち、少なくとも１つを含んでよく、また、これらの組み合わせであってもよい。センサ２０は、例えば、搭載された携帯機器を原点とした直交座標系の３つのｘｙｚ軸のうち少なくとも２軸に対して、加速度、角速度、および／または地磁気の検出結果を出力する。
【００２１】
進行方向情報出力装置１００は、携帯機器１０を保持するユーザの進行方向に応じた進行方向情報を出力する。進行方向情報出力装置１００は、取得部１１０と、記憶部１２０と、進行方向推定部１３０と、回転量算出部１４０と、ターン判断部１５０と、選択部１６０とを備える。
【００２２】
取得部１１０は、複数のセンサ２０に接続され、センサ２０からのセンサ信号を取得する。取得部１１０は、携帯機器１０の移動および静止といったユーザの進行状態に応じたセンサ２０からのセンサ信号を取得する。取得部１１０は、一例として、ユーザが携帯機器１０を所持して歩行する場合、センサ２０から、ユーザの歩行に伴う携帯機器１０の移動に応じたセンサ信号を取得する。取得部１１０は、取得したセンサ信号を、記憶部１２０に記憶する。
【００２３】
記憶部１２０は、取得部１１０に接続され、当該取得部１１０から受け取ったセンサ信号を記憶する。記憶部１２０は、例えば、進行方向推定部１３０および回転量算出部１４０等の各部の要求に応じて、記憶したセンサ信号の情報を要求元に供給する。
【００２４】
進行方向推定部１３０は、ユーザの進行方向を推定する。進行方向推定部１３０は、記憶部１２０に接続され、携帯機器１０が備えるセンサ２０からのセンサ信号を入力して、当該センサ信号に基づいてユーザの進行方向を推定する。進行方向推定部１３０は、例えば、センサ信号を信号解析またはパターンマッチング等を施してユーザの歩行に伴うパターン信号を検出し、当該パターン信号の進行方向依存性を解析することにより、当該ユーザの進行方向を推定する。このようなユーザが歩行している場合のセンサ信号に基づき、ユーザの進行方向を推定する方法は自律航法においては既知である。進行方向推定部１３０は、このように自律航法として用いられる既知の進行方向推定方法によって、ユーザの進行方向を推定してよい。
【００２５】
回転量算出部１４０は、ユーザが保持する携帯機器１０の重力軸周りの回転量を算出する。回転量算出部１４０は、記憶部１２０に接続され、携帯機器１０が備えるセンサ２０からのセンサ信号を入力して、当該センサ信号に基づいて重力軸方向における携帯機器１０の回転量を算出する。回転量算出部１４０は、一例として、複数の角速度センサおよび／または加速度センサからのセンサ信号を合成して軸変換することにより、重力軸周りの回転量を算出する。
【００２６】
また、回転量算出部１４０は、予め定められた時間間隔の間に算出した回転量を積算した積算量を、当該時間間隔における携帯機器１０の回転量として出力する。ここで、本実施形態の各回転量は、回転方向に応じた符号を有し、異なる方向に同一の角度回転した場合、積算量は零と算出する例を説明する。即ち、回転量算出部１４０は、センサ信号から得られる携帯機器１０の回転量を積算することにより、積算した時間間隔内において携帯機器１０が回転した回転量を算出する。
【００２７】
例えば、予め定められた時間間隔に、重力軸方向の右回り方向に４０度、左回り方向に７５度、ユーザが携帯機器１０を回転させた場合、回転量算出部１４０は、それぞれの回転量を積算させた３５度を、当該時間間隔における携帯機器１０の回転量として出力する。ここで、左回りの回転方向をプラス方向として説明した。
【００２８】
ターン判断部１５０は、回転量算出部１４０に接続され、携帯機器１０の予め定められた期間における回転量に応じて、ユーザが進行方向を変更したか否かを判断する。ターン判断部１５０は、判断した結果を選択部１６０に供給する。
【００２９】
選択部１６０は、進行方向推定部１３０および回転量算出部１４０に接続され、回転量算出部１４０が算出した回転量の積算値に基づいて、進行方向推定部１３０が算出した進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択する。選択部１６０は、ユーザが携帯機器１０を左右方向に移動させつつ歩行動作を続けた場合等を検出したことに応じて、当該ユーザの進行方向の変化の検出方法を切り替える。
【００３０】
また、選択部１６０は、ターン判断部１５０に接続され、ターン判断部１５０がユーザの進行方向変更を判断したことに応じて、進行方向推定部１３０が推定した進行方向に応じた進行方向情報の出力を選択する。選択部１６０は、選択した進行方向情報を外部へと出力する。
【００３１】
以上の本実施形態の進行方向情報出力装置１００は、ユーザの歩行状態に応じて、進行方向推定部１３０の過去の推定結果を出力するか、進行方向推定部１３０の更新された直近の推定結果を出力するかを選択する。進行方向情報出力装置１００の動作については、図３で説明する。
【００３２】
図３は、本実施形態に係る進行方向情報出力装置１００の動作フローを示す。進行方向情報出力装置１００は、図３に示す動作フローを実行することにより、携帯機器１０を所持するユーザの進行方向の推定結果を出力する。
【００３３】
まず、取得部１１０は、進行方向情報出力装置１００に接続された複数のセンサ２０からの出力を取得する（Ｓ３１０）。取得部１１０は、取得したセンサ信号を記憶部１２０に記憶する。取得部１１０は、センサ２０のセンサ信号の出力タイミングに同期して、当該センサ信号の取得と記憶部１２０への記憶とを継続して実行してよく、これに代えて、予め定められた周期で、当該センサ信号の取得と記憶部１２０への記憶とを継続して実行してもよい。
【００３４】
次に、進行方向推定部１３０は、センサ信号に基づき、ユーザの進行方向を推定する（Ｓ３２０）。進行方向推定部１３０は、角速度センサ、加速度センサ、および地磁気センサのうち、少なくとも１つのセンサ信号、または、これらのセンサ信号の組み合わせから、ユーザの進行方向を推定してよい。進行方向推定部１３０は、例えば特許文献１に記載されているような、自律航法として用いられる既知の進行方向推定方法によって、ユーザの進行方向を推定してよい。
【００３５】
また、進行方向推定部１３０は、例えば、角速度センサおよび／または加速度センサ等のセンサ信号に基づいてユーザの進行方向を推定してよく、この場合、各センサが検出する進行方向の変化に応じてユーザの進行方向を推定する。進行方向推定部１３０は、一例として、ユーザの進行方向の初期値からの変化を蓄積して、ユーザの進行方向を推定する。
【００３６】
また、進行方向推定部１３０は、例えば、地磁気センサ等のセンサ信号に基づいてユーザの進行方向を推定してよく、この場合、地磁気との差に応じた絶対座標によるユーザの進行方向を推定する。進行方向推定部１３０は、予め定められたタイミングでユーザの進行方向の推定を継続して実行し、推定結果を選択部１６０に供給する。
【００３７】
次に、回転量算出部１４０は、予め定められた第１時間間隔Δｔ１の間の重力軸周りの回転量の積算値を第１積算回転量として算出する（Ｓ３３０）。本実施形態において、回転量算出部１４０は、複数の加速度センサおよび角速度センサからのセンサ信号に応じて、重力軸周りの回転量を算出する例を説明する。
【００３８】
図４は、本実施形態に係る携帯機器１０を保持するユーザ３０の一例を示す。図４は、水平な地面４０上において、携帯機器１０を保持するユーザ３０が歩行している例を示す。図４において、重力方向はｇで示され、携帯機器１０は、重力方向ｇに対してｚ軸がθ、ｙ軸がθ＋９０度、ｘ軸が９０度の角度を形成する例を示す。
【００３９】
回転量算出部１４０は、一例として、複数の加速度センサのセンサ信号より、携帯機器１０の各軸と重力方向ｇとがなす角を算出する。ここで、重力加速度が１Ｇと既知なので、当該１Ｇが携帯機器１０のｘｙｚ軸に分配される度合いから、携帯機器１０の各軸と重力方向ｇとがなす角を算出することができる。すなわち、回転量算出部１４０は、重力方向ｇに対して携帯機器１０のｚ軸がθ、ｙ軸がθ＋９０度、ｘ軸が９０度の角度を形成することを算出できる。
【００４０】
そして、回転量算出部１４０は、携帯機器１０のｘｙｚ軸の各軸に対応する角速度センサのセンサ信号より、重力軸周りの回転量Ｗｇを算出する。図４の例の場合、回転量算出部１４０は、センサ信号から得られるｙ軸方向周りの回転量Ｗｙおよびｚ軸方向周りの回転量Ｗｚに応じて、重力軸周りの回転量Ｗｇを次式のように算出することができる。
（数１）
Ｗｇ＝Ｗｙｓｉｎθ＋Ｗｚｃｏｓθ
【００４１】
ここで、ユーザ３０が携帯機器１０を保持する場合、ｘｙｚ軸のうちの１つの軸を重力方向ｇに対して垂直方向に向ける場合が比較的多い。例えば、図４に示すように、ユーザ３０が携帯機器１０の表示部１２を観視する場合、ｘ軸方向は重力方向ｇに対してほぼ垂直方向に向く。また、ユーザ３０が携帯機器１０を横方向に保持して表示部１２を観視する場合、ｙ軸方向が重力方向ｇに対してほぼ垂直方向に向く。また、ユーザ３０が携帯機器１０を耳に当てて通話する場合、ｘ軸およびｚ軸方向が重力方向ｇに対してほぼ垂直方向に向く。
【００４２】
このように、ユーザ３０が携帯機器１０を保持すると、ｘｙｚ軸のうちの少なくとも１軸は重力方向ｇに対してほぼ垂直方向に向くので、当該垂直方向に向く軸に対応する角速度センサのセンサ信号は、重力軸周りの回転量Ｗｇとして算出される成分をほとんど含まないことになる。例えば、図４のｘ軸方向周りの回転量Ｗｘは、数１式には含まれない。
【００４３】
そこで、回転量算出部１４０は、ｘｙｚ軸に対応する３つの角速度センサのセンサ信号（回転量）のうち、重力方向の成分が大きい方から２つの回転量ＷｍａｘおよびＷ２ｎｄを選択し、当該回転量ＷｍａｘおよびＷ２ｎｄを用いて重力軸周りの回転量Ｗｇを算出してよい。この場合、回転量算出部１４０は、次式より重力軸周りの回転量Ｗｇを算出する。
（数２）
Ｗｇ＝Ｗｍａｘｓｉｎθ＋Ｗ２ｎｄｃｏｓθ
【００４４】
回転量算出部１４０は、一例として、ｘｙｚ軸に対応するそれぞれの加速度センサのセンサ信号の平均値が大きい方から２つの軸を選択する。ここで、角速度センサが出力するセンサ信号の平均値は、重力成分加速度を近似的に表すオフセット値となる。そこで、回転量算出部１４０は、当該平均値の大きいセンサ信号から順に２つの対応する軸を選択し、２つの軸周りの角速度センサのセンサ信号（回転量）を回転量ＷｍａｘおよびＷ２ｎｄとする。
【００４５】
回転量算出部１４０は、ｘｙｚ軸に対応する３つの角速度センサの回転量の重力方向の成分が、順位を判定できる程度に差異が生じている場合に、上述のように２つの回転量の成分から重力軸周りの回転量Ｗｇを算出してよい。回転量算出部１４０は、一例として、３つの角速度センサの出力値の重力方向の成分の絶対値が最も小さい値が、予め定められた値よりも小さい場合、数２式を用いて重力軸周りの回転量Ｗｇを算出する。これにより、回転量算出部１４０は、ｘｙｚ軸に対応する３つの角速度センサの回転量から重力軸周りの回転量Ｗｇを算出する場合に比較して、簡便に、かつ、高速に回転量Ｗｇを算出することができる。
【００４６】
そして、回転量算出部１４０は、予め定められた第１時間間隔Δｔ１の間に算出する複数の重力軸周りの回転量Ｗｇを積算して、第１積算回転量として算出する。また、回転量算出部１４０は、第１インターバルΔｉｔ１毎に、第１積算回転量を算出する。
【００４７】
図５は、本実施形態に係る進行方向情報出力装置１００の時間軸に応じた動作の一例を示す。図５は、時間軸を横軸にして、本実施形態の回転量算出部１４０が重力軸周りの回転量Ｗｇを積算する過程を模式的に示した波形を示す。例えば、図５の波形ａ０からａｎは、波形がハイ状態の場合に回転量算出部１４０が回転量Ｗｇを積算し、ロー状態においては積算しないことを示す。即ち、回転量算出部１４０は、時刻ｔ０において第１時間間隔Δｔ１の積算を開始し、時刻ｔ２において当該積算を終了して第１積算回転量を算出する（波形ａ０）。
【００４８】
また、回転量算出部１４０は、時刻ｔ１において第１時間間隔Δｔ１の積算を開始し、時刻ｔ３において当該積算を終了して第１積算回転量を算出する（波形ａ１）。このように、回転量算出部１４０は、第１インターバルΔｉｔ１毎に、第１積算回転量を順次算出する（波形ａ０〜ａｎ）。
【００４９】
ここで、回転量算出部１４０は、第１時間間隔Δｔ１と比較して、第１インターバルΔｉｔ１をより短い時間間隔にしてよい。この場合、回転量算出部１４０は、複数の第１積算回転量の算出を並列にそれぞれ実行してよい。図５において、回転量算出部１４０が、第１インターバルΔｉｔ１を、第１時間間隔Δｔ１の略１／２とする例を示す。
【００５０】
選択部１６０は、予め定められた第１時間間隔Δｔ１の間の第１積算回転量が予め定められた第１基準積算回転量以上であることを条件として（Ｓ３４０：Ｙｅｓ）、出力済の進行方向情報を維持することを選択する（Ｓ３４２）。例えば、選択部１６０は、時刻ｔ０からｔ２までの第１時間間隔Δｔ１の積算結果が、第１基準積算回転量以上の場合、時刻ｔ０以前に進行方向推定部１３０が出力した進行方向情報を維持する。ここで、第１時間間隔Δｔ１の時間程度において、ユーザがキョロキョロした場合（ユーザが携帯機器１０を左右方向に移動させつつ進行する場合）と（右または左方向に）ターンした場合とでは、回転量の積算値に大きな差はない場合があり、キョロキョロしたのかターンしたのかを区別することは難しい。そこで、第１時間間隔Δｔ１より長時間の検出によりキョロキョロしたのか、ターンしたのかが確定するまでは、進行方向の更新は行わないことが望ましい。
【００５１】
ここで、第１時間間隔Δｔ１は、ユーザが１歩以上、かつ、略１０歩以下を歩行する程度の時間であってよい。第１時間間隔Δｔ１は、略数歩を歩行する程度の時間であることが望ましい。第１時間間隔Δｔ１は、ユーザが１歩から６歩を歩行する程度の時間とすることが望ましく、例えば、０．５秒から３．０秒程度の時間とすることが望ましい。更には、ユーザが２歩から４歩を歩行する程度の時間とすることがより望ましく、例えば、１．０秒から２．０秒程度の時間とすることがより望ましい。また、第１時間間隔Δｔ１は、ユーザに応じて設定されてもよい。また、第１基準角度は、１０度以上の角度であってよく、例えば、２０度程度の角度であってよい。また、第１基準角度は、３０度程度の角度であることが好ましい。また、第１基準角度は、ユーザに応じて設定されてもよい。
【００５２】
即ち、選択部１６０は、例えば、ユーザが数歩程度歩く第１時間間隔Δｔ１の間に、重力軸周りの回転量Ｗｇの積算値が第１基準角度以上であることを検出した場合、当該ユーザが携帯機器１０を左右方向に移動させつつ進行する動作を開始したと判断する。そして、選択部１６０は、ユーザが当該動作を継続している間は、進行方向に対して左右を向くだけで進行方向を変化させない可能性が高い期間として、当該動作を開始する着前の進行方向情報を維持して出力する。
【００５３】
次に、回転量算出部１４０は、予め定められた第２時間間隔Δｔ２の間の回転量を算出すべく、重力軸周りの回転量の積算を開始する（Ｓ３５０）。回転量算出部１４０は、第２インターバルΔｉｔ２毎に、第２時間間隔Δｔ２の間の重力軸周りの回転量Ｗｇを積算し、積算回転量を算出する。ここで、第２時間間隔Δｔ２と第２インターバルΔｉｔ２は略同一時間間隔であるとする。
【００５４】
例えば、図５の波形ｂ０からｂ２は、波形がハイ状態の場合に回転量算出部１４０が回転量Ｗｇを積算し、ロー状態においては積算しないことを示す。波形ｂ０の場合、回転量算出部１４０は、時刻ｔ０から第２時間間隔Δｔ２が終了する時刻ｔ５までの間、回転量Ｗｇを積算し、積算結果である積算回転量Ｗｇ０を第２積算回転量として出力する。
【００５５】
波形ｂ１の場合、回転量算出部１４０は、時刻ｔ５において第２時間間隔Δｔ２の積算を開始して、時間間隔Δｔ２が終了する時刻ｔ１０まで回転量Ｗｇを積算し、積算回転量Ｗｇ１を算出する。そして、Ｗｇ０とＷｇ１を加算して得られる積算回転量を第２積算回転量として出力する。このように、回転量算出部１４０は、第２インターバルΔｉｔ２毎に、第２時間間隔Δｔ２における回転量Ｗｇを積算して積算回転量を算出し、過去に算出した積算回転量を加算したものを第２積算回転量として出力する（波形ｂ０〜ｂ２）。
【００５６】
上記例では、時刻ｔ０から時刻ｔ５までの時間間隔を第２時間間隔Δｔ２とし、回転量算出部１４０は、波形ｂ１において、結果的に第２時間間隔Δｔ２の２倍の時間間隔（時刻ｔ０から時刻ｔ１０までの時間間隔）における回転量Ｗｇを積算し、積算結果を第２積算回転量として出力している。これに代えて、例えば、時刻ｔ０から時刻ｔ１０までを定義された第２時間間隔Δｔ２とすれば、回転量算出部１４０は、第２時間間隔Δｔ２における回転量Ｗｇの積算結果を第２積算回転量として出力し、（第２時間間隔Δｔ２と略等しい）第２インターバルΔｉｔ２毎に第２時間間隔Δｔ２の間の回転量を積算し、一つ前に算出した第２積算回転量に積算結果を加算して新たな第２積算回転量として出力することになる。
【００５７】
ここで、回転量算出部１４０は、第２時間間隔Δｔ２を、第１時間間隔Δｔ１と比較してより長い期間とする。即ち、回転量算出部１４０が第２積算回転量を積算している過程において、回転量算出部１４０は、複数の第１積算回転量の算出を並列に実行することになる。即ち、回転量算出部１４０が第２積算回転量を積算する間に、複数の第１積算回転量による判定が実行されるので、当該複数の判定結果が全て第１基準積算回転量以上であることを条件に、回転量算出部１４０は、第２積算回転量の積算を継続することになる。このように、第１インターバルΔｉｔ１毎に算出される複数の回転量の積算値のうち、少なくとも一の回転量の積算値に対応する第１時間間隔Δｔ１の開始時刻および終了時刻は、第２時間間隔Δｔ２の開始時刻以上、終了時刻以下の間に経過する。
【００５８】
このように、回転量算出部１４０は、第１積算回転量が第１基準積算回転量以上であることに応じて、ユーザが携帯機器１０を左右方向に移動させつつ進行する動作を開始したと判断し、第２積算回転量の積算を開始する。そして、回転量算出部１４０は、当該動作が終了するまで、第２積算回転量の積算を継続してよい。
【００５９】
ここで、回転量算出部１４０は、時刻ｔが第２積算回転量の積算時間に足りない場合、当該第２積算回転量を０として出力してよい。例えば、時刻ｔ２における第１積算回転量の算出結果により、ユーザが携帯機器１０を左右方向に移動させつつ進行する動作を開始したと判断した場合において、時刻ｔ２、ｔ３、・・・等の段階では、第２積算回転量を算出するには不十分な積算時間なので、回転量算出部１４０は、第２積算回転量を０として出力してよい。
【００６０】
次に、ターン判断部１５０は、予め定められた第２時間間隔Δｔ２の間の回転量の積算値である第２積算回転量が、予め定められた第２基準積算回転量以上であるか否かを判断する（Ｓ３６０）。ここで、ターン判断部１５０は、第２積算回転量が第２基準積算回転量未満の場合は、ユーザが進行方向を変更していないと判断して、進行方向推定部１３０によるユーザの進行方向の推定段階Ｓ３２０に戻る（Ｓ３６０：Ｎｏ）。選択部１６０は、ターン判断部１５０がユーザの進行方向が変更されていないと判断したことに応じて、出力済の進行方向情報を維持した進行方向情報の出力を選択する。ここで、回転量算出部１４０は、時刻ｔが第２積算回転量の積算時間に足りない場合、当該第２積算回転量を０とするので、この場合もユーザの進行方向の推定段階Ｓ３２０に戻ることになる。
【００６１】
一方、ターン判断部１５０は、進行方向推定部１３０の出力済の進行方向情報を維持し続けている場合（即ち、第１時間間隔の間の回転量の積算値が第１基準積算回転量以上の場合）において、予め定められた第２時間間隔Δｔ２の間の回転量の積算値が、予め定められた第２基準積算回転量以上であることを条件として、ユーザが進行方向を変更したことを判断する（Ｓ３６０：Ｙｅｓ）。このように、ターン判断部１５０は、第２積算回転量を算出できる時間以上、第１積算回転量が第１基準積算回転量以上となる状態が継続し、かつ、算出した第２積算回転量が第２基準積算回転量以上となった場合に、ユーザが進行方向を変更したと判断する。この場合、進行方向情報出力装置１００は、次に第１積算回転量が第１基準積算回転量未満になるまでは、当該第１積算回転量が第１基準積算回転量以上であっても、進行方向の変化が継続しているものとみなし、進行方向情報の維持は行わなくてよい。ここで、第２時間間隔Δｔ２の第１時間間隔Δｔ１と比較してより長い時間の検出により、ユーザがキョロキョロした場合は積算回転量がほぼ０（進行方向が変化しないため）であるのに対し、ターンの場合は進行方向が変化した分だけ積算回転量が積算されるので、両者を区別することができる。即ち、ターン判断部１５０は、第２時間間隔Δｔ２の期間を用いることにより、ユーザがキョロキョロした場合かターンした場合かを判断でき、ターンしたと判断した場合には、方位変化した分の積算回転量を反映させることで正確な進行歩行情報を出力することができる。
【００６２】
ターン判断部１５０は、ユーザが携帯機器１０を左右方向に移動させつつ進行する動作を継続しても、第２時間間隔Δｔ２の間の携帯機器１０の重力軸周りの回転量Ｗｇの総和をとることにより、当該左右方向の移動に応じた進行方向の変化を相殺することができる。そして、ターン判断部１５０は、回転量Ｗｇの総和と進行方向（即ち例えば０度）との差が生じている場合に、ユーザが進行方向を変更したと判断することができる。
【００６３】
ここで、第２時間間隔Δｔ２は、第１時間間隔Δｔ１の１．５倍以上、かつ、１０倍以下程度の時間であってよい。即ち、第２時間間隔Δｔ２は、ユーザが左右方向を向きつつ歩行を進め、進行方向が変化する程度の歩数に対応する時間間隔であることが望ましい。
【００６４】
第１時間間隔Δｔ１は、１歩から６歩を歩行する程度の時間とすることが望ましく、例えば、０．５秒から３．０秒程度の時間とすることが望ましい。更には、２歩から４歩を歩行する程度の時間とすることがより望ましく、例えば、１．０秒から２．０秒程度の時間とすることがより望ましい。
【００６５】
第２時間間隔Δｔ２は、ユーザが３歩から１５歩を歩行する程度の時間とすることが望ましく、例えば、１．５秒から７．５秒程度の時間とすることが望ましい。更には、ユーザが４歩から１０歩を歩行する程度の時間とすることが望ましく、例えば、２．０秒から５．０秒程度の時間とすることが望ましい。また、第２時間間隔Δｔ２は、第１時間間隔Δｔ１と同様に、ユーザに応じて設定されてよい。
【００６６】
また、第２基準角度は、１０度以上の角度であってよく、例えば、２０度程度の角度であってよい。第１基準角度は、３０度程度の角度であることが好ましい。第２基準角度は、第１基準角度と略同一の角度であってもよい。また、第２基準角度は、ユーザに応じて設定されてもよい。
【００６７】
また、ターン判断部１５０は、第２時間間隔Δｔ２の間に含まれる第１時間間隔の間の回転量の回転方向が、全て一方向に向いていることを更に条件として、ユーザの進行方向の変更を判断してもよい。ユーザが左右方向を向きつつ歩行して進行方向を変える場合、進行方向が変化する側へと徐々に変化する場合がある。
【００６８】
そこで、ターン判断部１５０は、第１積算回転量が第１基準積算回転量以上となる状態が継続し、かつ、第１積算回転量の正負の符号が全て同一で、かつ、第２積算回転量が第２基準積算回転量以上となった場合に、ユーザが進行方向を変更したと判断する。これによって、ターン判断部１５０は、検出しづらい長期間に及ぶユーザの向きの変更を検出することができる。
【００６９】
ターン判断部１５０は、ユーザの進行方向変更を判断した場合、出力済の進行方向に第２積算回転量を加えた進行方向を、選択すべき進行方向情報として選択部１６０に供給する。選択部１６０は、ターン判断部１５０から当該選択すべき進行方向情報を受け取ったことに応じて、当該進行方向情報を出力して進行方向を更新する（Ｓ３７０）。
【００７０】
これによって、進行方向情報出力装置１００は、ユーザが左右方向を向きつつ歩行して進行方向を変えても、進行方向とは無関係に推定される推定結果を積算により相殺することができる。そして、第２基準積算回転量以上の進行方向の変化を、積算の直前に出力した進行方向に加えることにより、進行方向情報出力装置１００は、より正確な進行方向情報を算出して出力することができる。
【００７１】
また、進行方向推定部１３０が、地磁気センサ等のセンサ信号を用いて絶対座標でユーザの進行方向を推定する場合は、上記に代えて、ターン判断部１５０は、進行方向推定部１３０の最新の推定結果を選択すべき進行方向情報として選択部１６０に供給してもよい。
【００７２】
進行方向情報出力装置１００は、ユーザの処理終了の指示が入力されたことに応じて、自律航法の処理を終了する（Ｓ３８０：Ｙｅｓ）。また、進行方向情報出力装置１００は、ＧＰＳ衛星等との通信が確立されて現在位置の情報を取得したことに応じて、自律航法の処理を終了してもよい。また、進行方向情報出力装置１００は、処理の中止または中断の指示が入力されるまで、進行方向の推定段階Ｓ３２０に戻って処理を継続する（Ｓ３８０：Ｎｏ）。
【００７３】
この場合、選択部１６０は、回転量算出部１４０と同期して、予め定められた第１インターバルΔｉｔ１毎に、出力すべき進行方向情報の選択を順次実行してよい。また、選択部１６０は、第１時間間隔Δｔ１と比較して第１インターバルΔｉｔ１をより短い時間間隔としてよい。即ち、選択部１６０は、第１時間間隔の間の回転量の積算値が第１基準積算回転量以上であることを条件として、出力済の進行方向を維持し続ける。
【００７４】
また、ターン判断部１５０は、進行方向推定部１３０の出力済の進行方向情報を維持し続けている場合（即ち、第１時間間隔の間の回転量の積算値が第１基準積算回転量以上の場合）において、回転量算出部１４０と同期して、予め定められた第２インターバルΔｉｔ２毎に、ユーザが進行方向を変更したか否かを判断してよい。
【００７５】
以上の説明において、第１積算回転量が予め定められた第１基準積算回転量以上である場合を説明した。これに対し、選択部１６０は、第１時間間隔の間の回転量の積算値が第１基準積算回転量未満であることを条件として、進行方向推定部が推定した進行方向に応じた進行方向情報を出力することを選択する（Ｓ３４０：Ｎｏ）。
【００７６】
即ち、選択部１６０は、例えば、ユーザが数歩程度歩く間の第１積算回転量が第１基準角度未満の場合、当該ユーザが携帯機器１０を左右方向に移動させつつ進行はしていない、または、当該左右方向に移動させる進行動作を終了したと判断する。そして、選択部１６０は、当該動作を開始する直前の進行方向情報を維持している場合は当該維持を停止する。
【００７７】
そして、回転量算出部１４０は、第３時間間隔Δｔ３の間の重力軸周りの回転量の積算値を第３積算回転量として算出する（Ｓ３９０）。回転量算出部１４０は、第３時間間隔Δｔ３の間に算出する複数の重力軸周りの回転量Ｗｇを積算して、第３積算回転量として算出する。
【００７８】
回転量算出部１４０は、第１積算回転量が第１基準積算回転量以上であることを検出してから、異なる第１積算回転量が第１基準積算回転量未満となるまでの期間を、第３時間間隔Δｔ３とする。即ち、回転量算出部１４０は、ユーザの動作に応じて第３時間間隔Δｔ３を定める。例えば、図５の波形ｃ０に示すように、回転量算出部１４０は、第１積算回転量が第１基準角度以上となった第１時間間隔の開始時間Δｔ１から、第１積算回転量が第１基準角度未満となる第１時間間隔の終了時間Δｔｎ＋２までの間を第３時間間隔Δｔ３とし、等が器期間における回転量Ｗｇを積算して第３積算回転量を算出する。即ち、第３時間間隔Δｔ３は、ユーザの動作に応じて変化するので、当該第３時間間隔Δｔ２が終了する時刻と第２時間間隔Δｔ２が終了する時刻とが一致しない場合がある。
【００７９】
次に、ターン判断部１５０は、第３積算回転量が、予め定められた第３基準積算回転量以上であるか否かを判断する（Ｓ４００）。ここで、ターン判断部１５０は、第３積算回転量が第３基準積算回転量未満の場合は、ユーザが進行方向を変更していないと判断して、判断結果を選択部１６０に供給する（Ｓ４００：Ｎｏ）。選択部１６０は、一例として、当該判断結果を受け取ったことに応じて、進行方向推定部１３０による最新の推定結果を選択してユーザの進行方向情報として出力する（Ｓ４１０）。尚、第３基準積算回転量は第２基準積算回転量と異なる値であってもよく、同じ値であってもよい。
【００８０】
ここで、回転量算出部１４０は、第１積算回転量が最初の測定から第１基準積算回転量未満の場合は、進行方向推定部１３０の推定結果をそのまま出力してよい。このように、進行方向情報出力装置１００は、ユーザが携帯機器１０を左右方向に移動させて進行はしていないと判断した場合に、進行方向推定部１３０の推定結果が信頼できるとして当該推定結果を出力する。また、進行方向情報出力装置１００は、ユーザが携帯機器１０を左右方向に移動させつつ進行する動作を終了し、かつ、当該動作を継続中にユーザが進行方向を変更していないと判断した場合も、進行方向推定部１３０の推定結果が信頼できるとして当該推定結果を出力する。
【００８１】
また、ターン判断部１５０は、進行方向推定部１３０の出力済の進行方向情報を維持し続けた後に、第１時間間隔の間の回転量の積算値が第１基準積算回転量未満となった場合で、かつ、第１時間間隔の間の回転量の積算値が第１基準積算回転量未満の状態から第１基準積算回転量以上となった時刻から第１時間間隔の間の回転量の積算値が第１基準積算回転量未満となった時刻までの時間間隔の間の回転量の積算値が前記第３基準積算回転量以上であることを条件として、ユーザが進行方向を変更したことを更に判断する（Ｓ４００：Ｙｅｓ）。このように、ターン判断部１５０は、第２時間間隔Δｔ２よりも長い時間間隔においてユーザが進行方向を変化させても、当該変化を検出することができる。
【００８２】
即ち、ターン判断部１５０は、ユーザが携帯機器１０を左右方向に移動させつつ進行する動作を終了した場合に、当該動作の継続期間の重力軸周りの回転量Ｗｇの総和と進行方向（即ち０度）との差に応じて、当該動作の継続期間中にユーザが進行方向を変更したか否かを判断する。
【００８３】
このように、ターン判断部１５０は、第２時間間隔Δｔ２よりも長い長期間に及ぶユーザの向きの変更を検出することができる。また、ターン判断部１５０は、第２積算回転量によるターン検出において、検出もれ等が生じても、当該第３積算回転量によるターン検出で検出することもできる。
【００８４】
ターン判断部１５０は、第３積算回転量によるターン検出でユーザの進行方向変更を判断した場合、出力済の進行方向に第３積算回転量を加えた進行方向を、選択すべき進行方向情報として選択部１６０に供給する。選択部１６０は、ターン判断部１５０から当該選択すべき進行方向情報を受け取ったことに応じて、当該進行方向情報を出力して進行方向を更新する（Ｓ４２０）。
【００８５】
また、進行方向推定部１３０が、地磁気センサ等のセンサ信号を用いて絶対座標でユーザの進行方向を推定する場合は、上記に代えて、ターン判断部１５０は、進行方向推定部１３０の最新の推定結果を選択すべき進行方向情報として選択部１６０に供給してもよい。
【００８６】
以上のように、本実施形態の進行方向情報出力装置１００は、ユーザの進行方向を推定し、当該ユーザが保持する携帯機器が地面と平行な方向に行ったり来たりするように振れているか否かに基づいて、算出した当該ユーザの進行方向に応じた進行方向情報を出力するか、出力済の進行方向情報を維持した進行方向情報を出力するかを選択する。即ち、進行方向情報出力装置１００は、ユーザが左右方向に携帯機器１０を移動させつつ進行することに応じて、進行方向推定部１３０の推定結果を保留して、当該動作前の推定結果の出力を維持する。これによって、進行方向情報出力装置１００は、ユーザの左右方向に向ける動作に応じた進行方向推定部１３０の推定結果を直ちに採用することによって生じる進行方向の推定誤差を防ぐことができる。
【００８７】
また、進行方向情報出力装置１００は、第１積算回転量、第２積算回転量、および第３積算回転量といった複数の異なる積算時間によって得られる重力軸周りの回転量に基づき、ユーザの進行方向とは無関係の左右方向の移動を相殺させつつ、ユーザの進行方向を精度よく判断してユーザが進行する経路を推定することができる。
【００８８】
以上の本実施形態の進行方向情報出力装置１００の回転量算出部１４０は、取得部１１０が取得した角速度センサのセンサ信号に基づき、重力軸周りの回転量を算出することを説明した。これに代えて、回転量算出部１４０は、地磁気センサのセンサ信号に基づき、重力軸周りの回転量を算出してもよい。回転量算出部１４０は、携帯機器１０の各ｘｙｚ軸と地磁気の方向とが形成するそれぞれの角度の時間的な変化から、重力軸周りの回転量を算出してもよい。
【００８９】
これに代えて、回転量算出部１４０は、当該回転量を他から取得してもよい。例えば、進行方向推定部１３０が、センサ信号を解析して進行方向の推定を実行する場合に、重力軸周りの回転量も副次的に算出することがある。このような場合、回転量算出部１４０は、進行方向推定部１３０から重力軸周りの回転量を取得して積算することで、処理速度を向上させることができる。
【００９０】
以上のように、本実施形態の進行方向情報出力装置１００は、ユーザの進行方向を正確に判断することができるので、マップマッチングに応用しても、当該ユーザの地図上の位置を精度よく推定することができる。図６は、本実施形態に係るマップマッチング装置２００の構成例を示す。本実施形態のマップマッチング装置２００において、図２に示された本実施形態に係る進行方向情報出力装置１００の動作と略同一のものには同一の符号を付け、説明を省略する。マップマッチング装置２００は、入力部２１０と、位置決定部２２０とを更に備える。
【００９１】
入力部２１０は、ユーザの初期位置を入力する。また、入力部２１０は、マップマッチング機能の処理を開始する指示を入力してもよい。マップマッチング装置２００は、一例として、携帯機器１０の表示部１２に地図情報を表示させ、ユーザに現在位置を指定させることにより、ユーザの初期位置の入力およびマップマッチング機能の開始を入力させてよい。この場合、入力部２１０は、一例として、表示部１２と組み合わされたタッチパネル等の入力デバイスであってよい。
【００９２】
記憶部１２０は、表示部１２に表示させる地図情報を記憶する。また、記憶部１２０は、入力部２１０から入力されたユーザの初期位置を記憶してよい。
【００９３】
位置決定部２２０は、進行方向情報出力装置１００から出力される初期位置からのユーザの進行方向情報に応じた移動量に基づいて、ユーザの地図上の位置を決定する。進行方向情報出力装置１００は、誤差を低減させたユーザの進行方向を進行方向情報として出力することができるので、位置決定部２２０は、当該ユーザの地図上の位置を正確に決定することができる。
【００９４】
ここで、マップマッチング装置２００は、ユーザの歩行動作を検出する歩行検出部を更に備えてよい。この場合、位置決定部２２０が当該歩行検出部を有してよい。歩行検出部は、例えば、ユーザが歩行していることを検出した場合、歩行に伴う周期信号のパルス数をカウントしてユーザが歩行した歩数の情報も検出する。これによって、位置決定部２２０は、当該ユーザが歩行した歩数の情報と、ユーザの歩幅の情報を用いて、ユーザの移動量（歩数×歩幅）を算出することができる。ここで、記憶部１２０は、ユーザの歩幅の情報を予め記憶してよい。
【００９５】
位置決定部２２０は、決定したユーザの位置を、地図情報と共に表示部１２に表示させる。これによって、ユーザは、進行方向とは無関係に携帯機器を左右方向に移動させても、ユーザ自身の地図上の位置を確認することができる。
【００９６】
図７は、本実施形態に係る進行方向情報出力装置１００として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、例えば、携帯機器１０の内部に搭載される。これに代えて、コンピュータ１９００は、携帯機器１０の外部に備えられ、携帯機器１０からのセンサ出力を受信して、進行方向の出力結果等を携帯機器１０に送信してもよい。この場合、コンピュータ１９００は、一例として、携帯機器１０と無線で送受信する。
【００９７】
本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、および表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、記憶部２０４０、入出力部２０６０と、ＲＯＭ２０１０と、カードスロット２０５０と、入出力チップ２０７０とを備える。
【００９８】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００およびグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０およびＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００９９】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、記憶部２０４０、入出力部２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。記憶部２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラムおよびデータを格納する。記憶部２０４０は、不揮発性メモリであり、例えば、フラッシュメモリまたはハードディスク等である。
【０１００】
入出力部２０６０は、コネクタ２０９５と接続され、外部とプログラムまたはデータを送受信し、ＲＡＭ２０２０を介して記憶部２０４０に提供する。入出力部２０６０は、規格化されたコネクタおよび通信方式で外部と送受信してよく、この場合、入出力部２０６０は、ＵＳＢ、ＩＥＥＥ１３９４、ＨＤＭＩ（登録商標）、またはＴｈｕｎｄｅｒｂｏｌｔ（登録商標）等の規格を用いてよい。また、入出力部２０６０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の無線通信規格を用いて外部と送受信してもよい。
【０１０１】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、カードスロット２０５０、および入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、および／または、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。カードスロット２０５０は、メモリカード２０９０からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介して記憶部２０４０に提供する。入出力チップ２０７０は、カードスロット２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続してもよい。
【０１０２】
ＲＡＭ２０２０を介して記憶部２０４０に提供されるプログラムは、入出力部２０６０を介して、またはメモリカード２０９０等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内の記憶部２０４０にインストールされ、ＣＰＵ２０００において実行される。
【０１０３】
プログラムは、コンピュータ１９００にインストールされ、コンピュータ１９００を取得部１１０、記憶部１２０、進行方向推定部１３０、回転量算出部１４０、ターン判断部１５０、および選択部１６０等として機能させる。
【０１０４】
プログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部１１０、記憶部１２０、進行方向推定部１３０、回転量算出部１４０、ターン判断部１５０、および選択部１６０等として機能する。そして、この具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の進行方向情報出力装置１００が構築される。
【０１０５】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、記憶部２０４０、メモリカード２０９０、または入出力部２０６０を介して接続される記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置または通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【０１０６】
また、ＣＰＵ２０００は、記憶部２０４０、メモリカード２０９０、または入出力部２０６０を介して接続される記憶装置等に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、および／または記憶装置に含まれるものとする。
【０１０７】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（または不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１０８】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１０９】
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、メモリカード２０９０の他に、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）、またはＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１１０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
【０１１１】
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１１２】
１０  携帯機器、１２  表示部、２０  センサ、３０  ユーザ  、４０  地面、１００  進行方向情報出力装置、１１０  取得部、１２０  記憶部、１３０  進行方向推定部、１４０  回転量算出部、１５０  ターン判断部、１６０  選択部、２００  マップマッチング装置、２１０  入力部、２２０  位置決定部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  記憶部、２０５０  カードスロット、２０６０  入出力部、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  メモリカード、２０９５  コネクタ
【図１】
2015107853.tif 000003
【図２】
2015107853.tif 000004
【図３】
2015107853.tif 000005
【図４】
2015107853.tif 000006
【図５】
2015107853.tif 000007
【図６】
2015107853.tif 000008
【図７】
2015107853.tif 000009
【国際調査報告】
2015107853.tif 000010
2015107853.tif 000011
2015107853.tif 000012
2015107853.tif 000013