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