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