説明

キャリブレーション方法、情報処理装置及びキャリブレーションプログラム

【課題】ジャイロの零点オフセットを簡易にキャリブレーションすることを課題とする。
【解決手段】サーバ装置30は、移動体端末10が第1の地点から位置または角度の誤差が特定量となる第2の地点へ移動した場合に、モーションセンサ11の出力を用いたデッドレコニングにより第2の地点で得られる位置または角度と特定量との差分を特定する。さらに、サーバ装置30は、特定結果として得られた差分から、当該移動体が静止状態である場合にジャイロ11bによって出力されるセンサ値である零点オフセットを算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャリブレーション方法、情報処理装置及びキャリブレーションプログラムに関する。
【背景技術】
【0002】
歩行者などの移動体の位置や姿勢を計測する技術として、移動体によって携帯されるモーションセンサから得られたセンサ値を時間積分して移動体の位置および姿勢を求めるデッドレコニングという技術が知られている。
【0003】
かかるモーションセンサには、速度センサ、加速度センサ、角速度センサ(いわゆるジャイロ)などが用いられる。これらモーションセンサのセンサ値には、誤差が含まれる。このため、誤差を含んだセンサ値が時間積分された場合には、移動体の位置や姿勢の測位結果にも誤差が生じることになる。
【0004】
測位誤差が生じる要因の1つとしては、ジャイロの零点オフセットが挙げられる。図25は、ジャイロの零点オフセットを説明するための図である。図25に示すグラフの縦軸は、A/D変換後のジャイロのセンサ値を指し、また、図25に示すグラフの横軸は、時刻tを指す。ここでは、一例として、8ビットの分解能を持つA/D変換器が「0」〜「255」の256段階に離散化し、ある温度の条件下において静止状態におけるジャイロのセンサ値が中央値「127」を出力するようにA/D変換器が設計されている場合を想定する。この場合、静止状態におけるジャイロのセンサ値、すなわちジャイロの零点のアナログ出力は、図中のグラフの縦軸における離散値「d=127」及び離散値「d+1=128」の間の値を取るが、A/D変換器に量子化されることによって離散値「d」に切り捨てられる。このため、A/D変換器によって時刻kにサンプリングされたジャイロのセンサ値ωabc(k)には、ジャイロの零点のオフセットΔb(k)が含まれることになり、実際の角速度ωtrue(k)との間で誤差が生じることになる。なお、上記の「k」は、A/D変換器におけるセンサ値のサンプリング時刻を指す。
【0005】
このように、ジャイロによって計測された角速度をA/D変換器を用いてデジタル値に変換する場合には、静止状態におけるジャイロの出力値、すなわちジャイロの零点に量子化誤差によるオフセットΔb(k)が生じる。したがって、オフセットΔb(k)を含むジャイロの角速度を時間積分して姿勢角を求めた場合には、オフセットΔb(k)の累積値が移動体の姿勢角の誤差になる。
【0006】
かかるジャイロの零点オフセットをキャリブレーションする技術の一例として、距離センサ、方位センサ及び位置センサを用いて搬送車等の航走体の位置を検出する位置検出装置が挙げられる。この位置検出装置では、位置センサからの位置が入力されると、その位置と位置補正演算器のシステム位置とを比較し、この比較結果を観測誤差として、カルマンフィルタを用いてジャイロドリフトを始めとする誤差を推定し補償する。
【0007】
他の一例としては、複数の方位測定手段、速度測定手段を用いて、それぞれの測定手段の誤差を補正するナビゲーション装置が挙げられる。このナビゲーション装置では、GPS受信機がGPS衛生との距離の変化率に応じて算出する進行方位と、ジャイロが検出する進行方位と、ジャイロの検出誤差との関係に従って、ジャイロの検出誤差をカルマンフィルタを用いて推定する。その上で、ナビゲーション装置は、先に推定した検出誤差を用いて、ジャイロが検出した進行方位を補正する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開昭63−311115号公報
【特許文献2】特開平07−301541号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上記の従来技術では、以下に説明するように、ジャイロの零点オフセットを簡易にキャリブレーションできないという問題がある。
【0010】
すなわち、上記の位置検出装置及びナビゲーション装置は、いずれも正しい位置や正しい角度を用いてジャイロの零点オフセットをキャリブレーションするものである。このため、上記の位置検出装置及びナビゲーション装置では、正しい位置や正しい角度を求める処理を実行せねばならない。それゆえ、上記の位置検出装置及びナビゲーション装置では、ジャイロの零点オフセットをキャリブレーションするのに処理が煩雑化してしまう。
【0011】
開示の技術は、上記に鑑みてなされたものであって、ジャイロの零点オフセットを簡易にキャリブレーションできるキャリブレーション方法、情報処理装置及びキャリブレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本願の開示するキャリブレーション方法は、コンピュータが、加速度センサ及び角速度センサを保持する移動体が第1の地点から位置または角度の誤差が特定量となる第2の地点へ移動した場合に、下記の差分を特定する処理を実行する。すなわち、前記コンピュータが、前記加速度センサ及び前記角速度センサの出力を用いたデッドレコニングにより前記第2の地点で得られる位置または角度と前記特定量との差分を特定する処理を実行する。さらに、前記コンピュータが、特定結果として得られた差分から、当該移動体が静止状態である場合に前記角速度センサによって出力されるセンサ値である零点オフセットを算出する処理を実行する。
【発明の効果】
【0013】
本願の開示するキャリブレーション方法の一つの態様によれば、ジャイロの零点オフセットを簡易にキャリブレーションできるという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】図1は、実施例1に係る測位システムに含まれる各装置の構成を示す機能ブロック図である。
【図2】図2は、ループ経路の一例を示す図である。
【図3】図3は、ループ経路の一例を示す図である。
【図4】図4は、ループ経路の一例を示す図である。
【図5】図5は、デッドレコニングの推定結果の一例を示す図である。
【図6】図6は、補正前および補正後の移動軌跡を示す図である。
【図7】図7は、デッドレコニングの推定結果の一例を示す図である。
【図8】図8は、ヒューリステックの応用例を示す図である。
【図9】図9は、アンカーの設置位置の特定方法を説明するための図である。
【図10】図10は、アンカー記憶部の構成例を示す図である。
【図11】図11は、仮想アンカーの生成方法を説明するための図である。
【図12】図12は、仮想アンカー記憶部の構成例を示す図である。
【図13】図13は、実施例1に係るキャリブレーション処理の手順を示すフローチャートである。
【図14】図14は、零点オフセットΔbと移動軌跡との相関関係を示す図である。
【図15】図15は、オーバーフィッティングの一例を示す図である。
【図16】図16は、実施例2に係る測位システムに含まれる各装置の構成を示す機能ブロック図である。
【図17】図17は、モデル経路の一例を示す図である。
【図18】図18は、補正結果の選択方法を説明するための図である。
【図19】図19は、実施例2に係る関数導出処理の手順を示すフローチャートである。
【図20】図20は、実施例2に係る移動軌跡補正処理の手順を示すフローチャートである。
【図21】図21は、補正前の移動軌跡の一例を示す図である。
【図22】図22は、補正後の移動軌跡の一例を示す図である。
【図23】図23は、補正後の移動軌跡の一例を示す図である。
【図24】図24は、実施例1〜実施例3に係るキャリブレーションプログラムを実行するコンピュータの一例について説明するための図である。
【図25】図25は、ジャイロの零点オフセットを説明するための図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示するキャリブレーション方法、情報処理装置及びキャリブレーションプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0016】
[システム構成]
まず、本実施例に係る測位システムの構成について説明する。図1は、実施例1に係る測位システムに含まれる各装置の構成を示す機能ブロック図である。図1に示す測位システム1には、移動体端末10と、アンカー20と、サーバ装置30とが収容される。なお、図1の例では、歩行者などの移動体によって保持される移動体端末10に搭載されたジャイロの零点オフセットがサーバ装置30によってキャリブレーションされる場合を想定する。
【0017】
このうち、移動体端末10は、歩行者などの移動体によって保持される端末装置である。かかる移動体端末10の一態様としては、スマートフォンを始め、携帯電話機、PHS(Personal Handyphone System)やPDA(Personal Digital Assistant)などを採用できる。なお、図1の例では、移動体端末10を1つだけ例示したが、移動体端末10は1つである必要はなく、開示の測位システム1には、複数の移動体端末10を収容することができる。
【0018】
また、移動体端末10は、モーションセンサ11を搭載し、モーションセンサ11から得られたセンサ値を時間積分することにより移動体の位置および姿勢を求める自己位置推定機能、いわゆるデッドレコニングの演算機能を有する。かかるモーションセンサ11の一態様としては、加速度センサ11aやジャイロ11bなどを採用できる。さらに、移動体端末10は、後述のアンカー20との間で無線通信を行う機能を有し、アンカー20によって発信されたアンカーの識別情報、すなわちアンカーID(identification)を受信する。
【0019】
アンカー20は、自装置に予め付与されたアンカーIDを発信する発信機である。このアンカー20は、自装置から所定の距離以内に所在する装置が受信可能な電波、超音波や赤外線などを発信することにより、自装置のアンカーIDを移動体端末10へ通知する。なお、図1の例では、アンカー20がアンカーIDを発信する場合を想定するが、必ずしもIDを発信する必要はなく、ID以外の他の情報、例えば所定のローカル座標やグローバル座標などの位置情報を発信することもできる。
【0020】
サーバ装置30は、移動体端末10に搭載されたジャイロの零点オフセットをキャリブレーションするサービスを提供するコンピュータである。このサーバ装置30は、移動体端末10との間で無線通信を行う機能を有し、無線LAN(Local Area Network)やVPN(Virtual Private Network)などのネットワークを介してデータの授受を実行する。なお、ここでは、移動体端末10及びサーバ装置30の間で通信が無線により実行される場合を例示したが、必ずしも無線通信である必要はなく、有線通信が行われることとしてもかまわない。
【0021】
ここで、本実施例に係るサーバ装置30は、移動体端末10が第1の地点から位置または角度が特定量となる第2の地点へ移動した場合に、次のような処理を実行する。すなわち、本実施例に係るサーバ装置30は、モーションセンサ11の出力を用いたデッドレコニングにより第2の地点で得られる位置または角度と特定量との差分を特定する。さらに、本実施例に係るサーバ装置30は、特定結果として得られた差分から、当該移動体端末10が静止状態である場合にジャイロ11bによって出力されるセンサ値である零点オフセットを算出する。
【0022】
このため、本実施例に係るサーバ装置30では、キャリブレーションに必ずしも正しい位置や正しい角度を入力する必要はない。例えば、本実施例に係るサーバ装置30では、上記の位置検出装置の場合のように、移動体の行動範囲内に設けられた位置センサに正しい位置情報を設定する必要がない。また、本実施例に係るサーバ装置30では、上記のナビゲーション装置のように、GPS受信機を用いて正しい位置情報を取得する必要がなく、さらに、屋外での使用に限定されない。
【0023】
したがって、本実施例に係るサーバ装置30によれば、ジャイロの零点オフセットを簡易にキャリブレーションすることが可能になる。さらに、本実施例に係るサーバ装置30では、移動体端末10が第2の地点へ移動した場合にキャリブレーションすればよく、移動体の状態量が変化する度にジャイロの零点オフセットを算出する必要がない。よって、本実施例に係るサーバ装置30によれば、オフセットの演算回数を低減させることもできる。
【0024】
[移動体端末10の構成]
続いて、本実施例に係る移動体端末10の機能的構成について説明する。図1に示すように、移動体端末10は、モーションセンサ11と、アンカー検知部12と、位置推定部13とを有する。なお、移動体端末10は、図1に示した機能部以外にも既知の携帯端末が有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどを始め、キャリアによる通信を実行する機能部やアプリケーションプログラムを実行する機能部を有するものとする。
【0025】
モーションセンサ11は、移動体端末10の動きを計測するセンサである。このモーションセンサ11は、図1に示すように、加速度センサ11aと、ジャイロ11bとを有する。なお、図1の例では、加速度センサ11a及びジャイロ11bを有する場合を例示したが、必ずしも2つのセンサである必要はなく、速度センサをさらに有することとしてもよい。
【0026】
このうち、加速度センサ11aは、移動体端末10の加速度を計測するセンサである。かかる加速度センサ11aの一態様としては、X軸方向、Y軸方向、Z軸方向の加速度を計測する3軸加速度センサを採用できる。このように加速度センサ11aによって計測される3軸方向のセンサ値は、図示しないA/D変換器によってデジタル値に変換された後に後述の位置推定部13へ出力される。なお、加速度の計測方式には、半導体式を始め、機械式や光学式などの任意の方式を採用できる。
【0027】
ジャイロ11bは、移動体端末10の角速度を計測するセンサである。かかるジャイロ11bの一態様としては、X軸周り、Y軸周り、Z軸周りの加速度を計測する3軸ジャイロセンサを採用できる。このようにジャイロ11bによって計測される3軸周りのセンサ値は、図示しないA/D変換器によってデジタル値に変換された後に後述の位置推定部13へ出力される。なお、角速度の計測方式には、振動型を始め、回転型などの任意の方式を採用できる。
【0028】
アンカー検知部12は、アンカー20を検知する処理部である。一例としては、アンカー検知部12は、アンカー20からアンカーIDを受信した場合に、図示しない内部時計によって保持された時刻を参照して、アンカーIDにタイムスタンプを付与した上でサーバ装置30へ通知する。
【0029】
位置推定部13は、モーションセンサ11から得られたセンサ値を時間積分することにより移動体端末10の位置および姿勢を推定する処理部である。かかる位置推定部13による位置および姿勢の推定には、既存の慣性航法、いわゆるデッドレコニングを適用できる。一態様としては、位置推定部13は、デッドレコニングにより推定した相対移動座標、進行方向及びモーションセンサの出力値にタイムスタンプを付与した上でサーバ装置30へ送信する。なお、ここで言う「相対移動座標」とは、初期状態として与えられた位置からの移動量を指す。
【0030】
なお、アンカー検知部12及び位置推定部13には、各種の集積回路や電子回路を採用できる。また、アンカー検知部12及び位置推定部13を1つの集積回路や電子回路に統合することもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
【0031】
[サーバ装置30の構成]
次に、本実施例に係るサーバ装置30の機能的構成について説明する。図1に示すように、サーバ装置30は、移動履歴記憶部31と、差分特定部32と、オフセット算出部33と、補正部34と、移動軌跡記憶部35と、アンカー記憶部36aと、アンカー特定部36とを有する。さらに、サーバ装置30は、仮想アンカー記憶部37aと、仮想アンカー生成部37と、地図生成部38とを有する。なお、サーバ装置30は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有するものとする。
【0032】
移動履歴記憶部31は、移動体端末10の移動履歴を記憶する記憶部である。一例として、移動履歴記憶部31は、タイムスタンプ、相対移動座標、進行方向及びモーションセンサ11の出力値などの時系列変化を移動体端末10の移動履歴として記憶する。なお、移動履歴記憶部31には、移動体端末10の位置推定部13によって送信された移動履歴が移動体端末10別に蓄積される。
【0033】
差分特定部32は、移動体端末10が第1の地点から位置または角度の誤差が特定量となる第2の地点へ移動した場合に、デッドレコニングにより第2の地点で得られる位置または角度と特定量との差分を特定する処理部である。
【0034】
一例としては、差分特定部32は、移動体端末10がループ経路を移動して出発した地点に戻った場合に、デッドレコニングにより得られる出発時点からの位置の差分を特定する。
【0035】
ここで言う「ループ経路」は、移動体端末10が基準となるアンカー20の設置位置を出発してから再びアンカー20の設置位置に戻る任意の経路を指す。図2〜図4は、ループ経路の一例を示す図である。一例としては、ループ経路は、図2に示すように、アンカー20の設置位置を始点および終点としたリング状の経路であってよい。他の一例としては、ループ経路には、図3に示すように、アンカー20の設置位置を始点および終点とした直線の折り返し経路であってもよい。更なる一例としては、ループ経路は、図4に示すように、アンカー20の設置位置を始点および終点とし、その過程に左、右、右、右の順に旋回を混ぜた経路であってもよい。なお、ループ経路は、図2〜図4に図示した経路に限らず、アンカー20の設置位置を始点および終点とする経路であれば移動体が移動する環境に合った任意の経路であってよい。
【0036】
このように、移動体端末10を保持する移動体にアンカー20の設置位置を始点及び終点としてループ経路を移動させるのは、移動前後で移動体の位置を同定するためである。このため、第1の地点及び第2の地点は、いずれもアンカー20の設置位置となり、第1の地点が始点、第2の地点が終点となる。それゆえ、第1の地点から第2の地点へ移動した場合には、デッドレコニングにより第2の地点で推定されるべき位置の差分、すなわち移動量はゼロとなる。よって、デッドレコニングにより移動体がアンカー20の設置位置を出発してから再び戻るまでに推定される位置の変化量をデッドレコニングの位置誤差と同定できる。なお、以下では、デッドレコニングにより移動体がアンカー20の設置位置を出発してから再び戻るまでに推定される位置の差分のことを「位置誤差」と呼ぶ場合がある。
【0037】
これを説明すると、差分特定部32は、移動体端末10のアンカー検知部12からタイムスタンプ付きのアンカーIDを受信した場合に、次のような処理を実行する。すなわち、差分特定部32は、前回に受信したアンカーIDに対応付けられたタイムスタンプと今回受信したアンカーIDに対応付けられたタイムスタンプとを比較して前回にアンカーIDを受信してから所定の期間を経過したか否かを判定する。このとき、差分特定部32は、前回にアンカーIDを受信してから所定の期間を経過していた場合に、今回受信したアンカーIDが前回受信したアンカーIDと同一のアンカーIDであるか否かをさらに判定する。このようにして、差分特定部32は、移動体端末10がアンカー20の設置位置から出発してから再び戻ってきたのか否かを判別する。そして、差分特定部32は、移動履歴記憶部31を参照して、前回受信したタイムスタンプに対応する相対移動座標および今回受信したタイムスタンプに対応する相対移動座標を読み出す。その上で、差分特定部32は、各相対移動座標の差分、すなわち位置誤差を特定する。
【0038】
他の一例として、差分特定部32は、位置誤差を特定することなく、角度誤差を特定することもできる。すなわち、差分特定部32は、移動体端末10が第1の地点から所定の設置条件を満たしてアンカー20が設置された第2の地点へ移動した場合に、デッドレコニングにより第2の地点で得られる角度と設置条件により特定される角度との差分を特定する。かかる設置条件には、アンカー20を通過する移動体の進行方向を推定できるヒューリステックが適用される。一例としては、アンカー20が閉状態におけるドアの面上に設置されていることが設置条件として設定される。このとき、アンカー20が閉状態におけるドアの面上に設置されている場合には、移動体がドア面に対して垂直な方向に進むと推定できる。このように、差分特定部32は、アンカー20が所定の設置条件に該当する場合には、移動履歴記憶部31を参照して、今回受信したタイムスタンプに対応する進行方向を読み出す。その上で、差分特定部32は、今回受信したタイムスタンプに対応する進行方向とアンカー20近傍で移動体が取ると推定される進行方向との差分を特定する。なお、以下では、デッドレコニングにより第2の地点で得られる角度と設置条件により特定される角度との差分のことを「角度誤差」と呼ぶ場合がある。
【0039】
オフセット算出部33は、差分特定部32によって特定された位置誤差または角度誤差から、移動体端末10におけるジャイロ11bの零点オフセットΔbを算出する処理部である。
【0040】
一態様として、位置誤差からジャイロ11bの零点オフセットを算出する算出式の導出例を説明する。これを説明すると、状態量xが下記の式(1)で表される。かかる式(1)における「ω」は角速度を指し、式(1)における「m」は移動するセンサ座標系から見て北向きを表すベクトルを指す。式(1)における「m」の初期値である「m」は予め付与されるものとする。また、観測誤差Δzが下記の式(2)で表される。さらに、状態量の誤差Δxが下記の式(3)で表される。
【0041】
【数1】

【0042】
【数2】

【0043】
【数3】

【0044】
状態量は、カルマンフィルタを用いて下記の式(4)のように逐次更新される。かかる式(4)における「z」は、観測量(ベクトル)を指し、式(4)の「K」はカルマンゲイン(行列)を指し、また、式(4)における「C」は状態空間を観測空間へ写像する行列を指す。さらに、状態方程式を下記の式(5)で表す。なお、下記の式(5)における「Δt」はサンプリング間隔を指す。
【0045】
【数4】

【0046】
【数5】

【0047】
これら式(4)及び式(5)によって、状態量の累積誤差は、下記の式(6)及び式(7)で表される。このとき、初期状態としてΔx←0を与えると、累積誤差Δxは、下記の式(6)及び式(7)の繰り返し演算により算出可能な行列Aを用いて、下記の式(8)で表される。かかる式(8)の導出例としては、初期状態としてΔx←0を与えることにより、下記の式(6)から下記の式(9)が得られ、下記の式(7)から下記の式(10)が得られる。ここで、下記の式(10)で「Δm=−Δt[mt=0×]K11,t=0Δb」となるので、行列Aが「−Δt[mt=0×]K11,t=0」と導出される。
【0048】
【数6】

【0049】
【数7】

【0050】
【数8】

【0051】
【数9】

【0052】
【数10】

【0053】
ここで、基準とするアンカー20を原点とした基準座標系から見た位置誤差をΔpとし、さらに、基準座標系のy軸正方向を北向き、z軸負方向を重力方向としたとき、基準座標系からセンサ座標系への変換行列は、下記の式(11)で表される。かかる式(11)における「g」はセンサ座標系で重力方向を表すベクトルを指し、「m」はセンサ座標系で北向きを表すベクトルを指し、また、「P」はnを法線とする平面へ射影する行列を指す。このとき、基準座標系での位置pは、下記の式(12)により求まる。かかる式(12)における「v」は時刻tにおける速度ベクトルを指し、また、「Δt」はサンプリング間隔を指す。なお、上記の位置pの初期位置は、原点であるものとする。
【0054】
【数11】

【0055】
【数12】

【0056】
上記の式(12)により、ジャイロの零点オフセットによる位置誤差Δpは、下記の式(13)で表される。このとき、下記の式(14)に示す「S」を定義すると、位置誤差Δpの算出式は、下記の式(15)で表される。かかる式(15)における「Δp」や「S」に既知の値を代入することによって、ジャイロの零点オフセットΔbが算出できる。但し、Δbが大きくなると線形化の近似条件が成立しなくなる。そこで、下記の式(16)に示す「E」を最小化するΔbを求める。かかるΔbは、SR−Inverseを用いて下記の式(17)のように計算できる。なお、式(17)における「S」は、SR−Inverseにより下記の式(18)のように定義される。
【0057】
【数13】

【0058】
【数14】

【0059】
【数15】

【0060】
【数16】

【0061】
【数17】

【0062】
【数18】

【0063】
このように、オフセット算出部33は、位置誤差Δpを代入して上記の式(15)または上記の式(17)を解くことにより、ジャイロの零点オフセットΔbを算出できる。このようにして算出されたジャイロの零点オフセットΔbは、アンカーIDの通知元の移動体端末10へ送信される。これによって、零点オフセットΔbが通知された移動体端末10では、以降のデッドレコニングの精度を向上させることができる。
【0064】
他の一態様として、角度誤差からジャイロ11bの零点オフセットを算出する算出式の導出例を説明する。上記の式(8)を導出するまでは、位置誤差Δpの場合の導出と同様であるので、上記の式(8)以降の導出について説明する。ここで、進行方向の角度誤差Δθは、センサ座標系から見た北方向のベクトルの誤差に等しいので、Δθが小さいときは下記の式(19)が成立する。かかる式(19)における「P」はnを法線とする平面へ射影する行列を示す。そして、下記の式(19)は、上記の式(8)により下記の式(20)に変形できる。さらに、‖v‖vvの関係により、下記の式(21)が成立する。かかる式(21)を解くことにより、ジャイロの零点オフセットΔbが算出できる。なお、下記の式(21)における「t」は転置を表す。
【0065】
【数19】

【0066】
【数20】

【0067】
【数21】

【0068】
このように、オフセット算出部33は、角度誤差Δθを代入して上記の式(21)を解くことにより、ジャイロの零点オフセットΔbを算出できる。このようにして算出されたジャイロの零点オフセットΔbは、アンカーIDの通知元の移動体端末10へ送信されることになる。
【0069】
補正部34は、移動履歴記憶部31に記憶された移動履歴を再計算することにより、移動体端末10の移動軌跡を補正する処理部である。一例としては、補正部34は、オフセット算出部33によってジャイロ11bの零点オフセットΔbが算出された移動体端末10に関するモーションセンサ11の出力値の履歴を読み出す。その上で、補正部34は、先に読み出したモーションセンサ11の出力値の履歴の時間積分をジャイロ11bの零点オフセットΔbを用いて再計算することにより、移動体端末10の移動軌跡を補正する。その後、補正部34は、補正後の移動軌跡を後述の移動軌跡記憶部35へ格納するとともに、補正後の移動軌跡を後述のアンカー特定部36へ出力する。
【0070】
移動軌跡記憶部35は、補正部34によって補正された移動体端末10の移動軌跡、いわゆる移動体の動線を記憶する記憶部である。一例として、移動軌跡記憶部35は、移動体端末10の移動軌跡である相対移動座標を始め、タイムスタンプ、相対移動座標、進行方向やモーションセンサ11の出力値などの時系列変化を移動体の動線として記憶する。なお、少なくともアンカー20とアンカー20が設置されたグローバル座標、すなわち緯度及び経度で表現される座標系とを対応付けておくことにより、移動体端末10の移動軌跡を相対移動座標のログからグローバル座標のログへ変換することができる。
【0071】
ここで、図5及び図6を用いて、デッドレコニングの位置誤差Δpを用いてキャリブレーションする場合の具体例を説明する。図5は、デッドレコニングの推定結果の一例を示す図である。図6は、補正前および補正後の移動軌跡を示す図である。なお、図5及び図6の例では、図示のアンカー20Aの位置を原点とする座標系o−xyを基準座標系とし、デッドレコニングによって推定される移動体の位置および姿勢は、基準座標系から見た相対移動座標および進行方向として表される場合を例示する。
【0072】
図5に示すように、移動体端末10を保持する移動体は、アンカー20Aの設置位置を出発してから部屋W及びVに面する廊下を経て階段周りを左、右、右、右の順に旋回し、再び廊下を通過してアンカー20Aの設置位置へ戻る移動軌跡41を取る。この場合には、ジャイロ11bの零点オフセットΔbによる誤差を含んだ移動体の移動軌跡42が移動体端末10の位置推定部13によって推定される。そして、アンカー20AからアンカーIDを再び受信することによって移動体がアンカー20Aの設置位置に戻ったことが差分特定部32によって検知される。このとき、デッドレコニングにより推定された位置、すなわち移動軌跡42の終点と、実際の位置である基準座標系の原点との間で生じた位置誤差Δpが差分特定部32によって取得される。このようにして位置誤差Δpが取得されると、上記の式(15)または上記の式(17)を用いて、ジャイロ11bの零点オフセットΔbがオフセット算出部33によって算出される。かかるジャイロ11bの零点オフセットΔbが算出されると、図6に示すように、モーションセンサ11の出力値の履歴の時間積分が補正部34によってオフセットΔbを用いて再計算されることにより、補正後の移動軌跡45が算出される。このようにして実際の移動軌跡41と比べても誤差の少ない移動軌跡45に補正できる。
【0073】
次に、図7を用いて、デッドレコニングの角度誤差Δθを用いてキャリブレーションする場合の具体例を説明する。図7は、デッドレコニングの推定結果の一例を示す図である。なお、図7の例では、図示のアンカー20Bの位置を原点とする座標系o−xyを基準座標系とし、デッドレコニングによって推定される移動体の位置および姿勢は、基準座標系から見た相対移動座標および進行方向として表される場合を例示する。
【0074】
図7に示すように、移動体端末10を保持する移動体は、ドア面上に設けられたアンカー20Bを出発してから左旋回して前進した後に折り返して再びアンカー20Bに戻る移動軌跡51を取る。この場合には、ジャイロ11bの零点オフセットΔbによる誤差を含んだ移動体の移動軌跡52が移動体端末10の位置推定部13によって推定される。そして、アンカー20BからアンカーIDを再び受信することによって移動体がアンカー20Bの設置位置に戻ったことが差分特定部32によって検知される。このとき、移動体はドア面を通過する際にドア面に対して垂直な方向54を進むと推定できる。よって、デッドレコニングにより推定された移動体の進行方向55とドア面に対して垂直な進行方向54との間で生じた角度誤差Δθが差分特定部32によって取得される。このようにして角度誤差Δθが取得されると、上記の式(21)を用いて、ジャイロ11bの零点オフセットΔbがオフセット算出部33によって算出される。
【0075】
なお、ここでは、ドアに関するヒューリステックを適用する場合を例示したが、ヒューリステックの適用範囲はドアに限定されない。例えば、サーバ装置30は、ドア以外にも階段やエスカレータへ進入する場合にも同様にヒューリステックを適用できる。図8は、ヒューリステックの応用例を示す図である。図8に示すように、階段60とフロアの境界面にアンカー20Cを設けておけば、移動体は階段へ進入する際に階段の延在方向61と同一の方向へ進むと推定できる。よって、デッドレコニングにより推定された移動体の進行方向62と階段の延在方向61との間で生じた角度誤差Δθが差分特定部32によって取得される。
【0076】
アンカー特定部36は、アンカー記憶部36aを用いて、移動軌跡記憶部35に記憶された移動体端末10の移動軌跡上でアンカーIDが受信されたアンカー20の位置を特定する処理部である。
【0077】
ここで、図9及び図10を用いて、アンカーの設置位置の特定方法を説明する。図9は、アンカー20の設置位置の特定方法を説明するための図である。図10は、アンカー記憶部36aの構成例を示す図である。図9に示すように、移動体は基準とするアンカー20Aが設置されている位置を始点として移動を開始する。その後、アンカー特定部36は、移動軌跡42上の地点71でアンカー20Dを検知する。この時点では、デッドレコニングには測位誤差が含まれているので、アンカーの正確な位置は分からない。そこで、アンカー特定部36は、図10に示すように、アンカーの位置を基準アンカー20Aからのトポロジー「前進17m」でアンカー記憶部36aに表記する。このとき、アンカー特定部36は、検知したアンカーID「20D」も登録しておく。同様にして、アンカー特定部36は、移動軌跡42上の地点72でアンカー20Eを検知する。この場合には、アンカー特定部36は、図10に示すように、アンカーの位置を基準アンカー20Aからのトポロジー「前進17m+左旋回+前進8m+右旋回+前進8m」をアンカーID「20E」とともにアンカー記憶部36aへ登録する。その後、アンカー特定部36は、補正後の移動軌跡45が算出されると、トポロジーで表現されている移動軌跡45上の各アンカーIDの位置73及び位置74を基準座標系から見た座標値でアンカー記憶部36aへ登録する。
【0078】
仮想アンカー生成部37は、仮想アンカー記憶部37aを用いて、補正後の移動体の移動軌跡上でモーションセンサ11により検出される速度、加速度及び/又は角速度の時間変化が所定の特徴パターンを満たす地点を仮想アンカーとして抽出する処理部である。
【0079】
ここで、図11及び図12を用いて、仮想アンカーの生成方法を説明する。図11は、仮想アンカーの生成方法を説明するための図である。図12は、仮想アンカー記憶部37aの構成例を示す図である。なお、ここでは、一例として、速度、加速度及び/又は角速度の時間変化がコーナーを旋回する特徴パターンを満たす地点を仮想アンカーとして抽出する場合を例示する。
【0080】
図11に示すように、移動体は、基準となるアンカー20Aが設置されている位置を始点として移動を開始する。その後、仮想アンカー生成部37は、移動体が移動軌跡42上の地点81付近で左旋回すると、進行方向の加速度および移動速度、角速度、姿勢の時間変化に左旋回特有の特徴パターンを検知する。例えば、移動体が歩行者の場合には、歩幅や歩行周期等にも特徴パターンが現れる。この場合には、仮想アンカー生成部37は、図12に示すように、特徴パターンの出現位置を実物のアンカー20Aからのトポロジー「前進17m+左旋回+前進8m」で仮想アンカー記憶部37aへ表記する。同様にして、仮想アンカー生成部37は、移動体が移動軌跡42上の地点82付近で右旋回した位置、地点83付近で右旋回した位置、さらには、地点84付近で右旋回した位置のトポロジーを仮想アンカー記憶部37aへ登録する。その後、仮想アンカー生成部37は、補正後の移動軌跡45が算出されると、トポロジーで表現されている移動軌跡45上の位置85〜88を基準座標系から見た座標値で仮想アンカー記憶部37aへ登録することにより、仮想アンカーを生成する。例えば、移動体端末10によって計測されたトポロジーが仮想アンカーのトポロジーと一致する場合には、仮想アンカーの座標を用いて、ジャイロの零点オフセットをキャリブレーションすることができる。
【0081】
なお、ここでは、速度、加速度及び/又は角速度の時間変化がコーナーを旋回する特徴パターンを満たす地点を仮想アンカーとして抽出する場合を例示したが、仮想アンカーの抽出対象はコーナーに限定されない。例えば、仮想アンカー生成部37は、ドアの前には一旦停止するための速度及び加速度パターンが出現し、階段の上り始めや下り始め、また、スロープに差し掛かる場所では重力方向加速度に特徴的なパターンが出現する。このような固有の特徴が現れる位置は全て仮想アンカーとして抽出できる。
【0082】
地図生成部38は、移動軌跡記憶部35に記憶された各移動体の移動軌跡を重ね合わせることにより移動可能な経路が特定された地図を生成する処理部である。さらに、地図生成部38は、アンカー記憶部36aに記憶された各アンカーの座標および仮想アンカー記憶部37aに記憶された各仮想アンカーの座標を地図上にマッピングすることもできる。
【0083】
なお、誤差特定部32、オフセット算出部33、補正部34、アンカー特定部36、仮想アンカー生成部37及び地図生成部38には、各種の集積回路や電子回路を採用できる。また、画像解析部15に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
【0084】
また、移動履歴記憶部31、移動軌跡記憶部35、アンカー記憶部36a及び仮想アンカー記憶部37aなどの記憶部には、半導体メモリ素子や記憶装置を採用できる。例えば、半導体メモリ素子としては、VRAM(Video Random Access Memory)、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などが挙げられる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。
【0085】
[処理の流れ]
次に、本実施例に係るサーバ装置の処理の流れについて説明する。図13は、実施例1に係るキャリブレーション処理の手順を示すフローチャートである。このキャリブレーション処理は、移動体端末10のアンカー検知部12からタイムスタンプ付きのアンカーIDを受信した場合に処理が起動する。
【0086】
図13に示すように、差分特定部32は、前回受信したアンカーIDに付与されたタイムスタンプと今回受信したアンカーIDに付与されたタイムスタンプとを比較して前回にアンカーIDを受信してから所定の期間を経過したかを判定する(ステップS101)。なお、前回にアンカーIDを受信してから所定の期間を経過していない場合(ステップS101否定)には、移動体端末10がアンカー20の通信圏内に滞在していると推定できるので、そのまま処理を終了する。
【0087】
このとき、差分特定部32は、前回にアンカーIDを受信してから所定の期間を経過していた場合(ステップS101肯定)に、今回受信したアンカーIDが前回受信したアンカーIDと同一のアンカーIDであるか否かをさらに判定する(ステップS102)。なお、今回受信したアンカーIDが前回受信したアンカーIDと異なる場合(ステップS102否定)には、基準とするアンカー20に戻ったのではなく、前回受信したアンカーIDのアンカー20は通過しただけであると推定できるので、そのまま処理を終了する。
【0088】
ここで、今回受信したアンカーIDが前回受信したアンカーIDと同一のアンカーIDである場合(ステップS102肯定)には、差分特定部32は、デッドレコニングの位置誤差または角度誤差を特定する(ステップS103)。その後、オフセット算出部33は、デッドレコニングの位置誤差または角度誤差からジャイロ11bの零点オフセットを算出する(ステップS104)。そして、オフセット算出部33は、ジャイロの零点オフセットをアンカーIDの通知元の移動体端末10へ送信する(ステップS105)。
【0089】
続いて、補正部34は、移動履歴記憶部31に記憶されたモーションセンサ11の出力値の履歴の時間積分をジャイロ11bの零点オフセットを用いて再計算することにより、移動体端末10の移動軌跡を補正する(ステップS106)。
【0090】
その後、アンカー特定部36は、移動軌跡記憶部35に記憶された移動体端末10の移動軌跡上でアンカーIDが受信されたアンカー20の位置を特定する(ステップS107)。そして、仮想アンカー生成部37は、補正後の移動体の移動軌跡上でモーションセンサ11により検出される速度、加速度及び/又は角速度の時間変化が所定の特徴パターンを満たす地点を仮想アンカーとして抽出する(ステップS108)。
【0091】
最後に、地図生成部38は、移動軌跡記憶部35に記憶された各移動体の移動軌跡を重ね合わせることにより移動可能な経路が特定された地図を生成し(ステップS109)、処理を終了する。
【0092】
[実施例1の効果]
上述してきたように、本実施例に係るサーバ装置30は、移動体端末10が第1の地点から位置または角度が特定量となる第2の地点へ移動した場合に、次のような処理を実行する。すなわち、本実施例に係るサーバ装置30は、モーションセンサ11の出力を用いたデッドレコニングにより第2の地点で得られる位置または角度と特定量との差分を特定する。さらに、本実施例に係るサーバ装置30は、特定結果として得られた差分から、当該移動体端末10が静止状態である場合にジャイロ11bによって出力されるセンサ値である零点オフセットを算出する。
【0093】
このため、本実施例に係るサーバ装置30では、キャリブレーションに必ずしも正しい位置や正しい角度を入力する必要はない。例えば、本実施例に係るサーバ装置30では、上記の位置検出装置の場合のように、移動体の行動範囲内に設けられた位置センサに正しい位置情報を設定する必要がない。また、本実施例に係るサーバ装置30では、上記のナビゲーション装置のように、GPS受信機を用いて正しい位置情報を取得する必要がなく、さらに、屋外での使用に限定されない。
【0094】
したがって、本実施例に係るサーバ装置30によれば、ジャイロの零点オフセットを簡易にキャリブレーションすることが可能になる。さらに、本実施例に係るサーバ装置30では、移動体端末10が第2の地点へ移動した場合にキャリブレーションすればよく、移動体の状態量が変化する度にジャイロの零点オフセットを算出する必要がない。よって、本実施例に係るサーバ装置30によれば、オフセットの演算回数を低減させることもできる。
【0095】
また、本実施例に係るサーバ装置30は、アンカー20からアンカーIDが受信されなくなった時点から同一のアンカーIDが再度受信される時点までにデッドレコニングにより第2の地点で推定された位置又は角度と特定量との差分を特定する。これによって、本実施例に係るサーバ装置30では、移動体端末10が第1の地点から位置または角度が特定量となる第2の地点へ移動したことをアンカー20を用いて自動検知しつつ、ジャイロの零点オフセットをキャリブレーションできる。
【0096】
さらに、本実施例に係るサーバ装置30は、ジャイロ11bの零点オフセットに基づいて移動体端末10の移動軌跡を補正し、補正後の移動体の移動軌跡上でアンカーIDが受信されたアンカーの位置を特定する。このため、本実施例に係るサーバ装置30では、過去に通過したアンカー20の位置を自動検知できる。
【0097】
また、本実施例に係るサーバ装置30は、ジャイロ11bの零点オフセットに基づいて移動体端末10の移動軌跡を補正する。さらに、本実施例に係るサーバ装置30は、補正後の移動体の移動軌跡上でモーションセンサ11によって検出される速度、加速度および/または角速度の時間変化が所定の特徴パターンを満たす地点の相対位置を仮想アンカーとして抽出する。さらに、本実施例に係るサーバ装置30は、仮想アンカーの相対位置を用いて、ジャイロ11bの零点オフセットを算出する。それゆえ、本実施例に係るサーバ装置30では、ジャイロ11bの零点オフセットをキャリブレーションできる機会を増加させることができる。
【0098】
さらに、本実施例に係るサーバ装置30は、ジャイロ11bの零点オフセットに基づいて移動体端末10の移動軌跡を補正する。その上で、本実施例に係るサーバ装置30は、移動軌跡記憶部35を参照して、各移動体端末10の移動軌跡を重ね合わせることにより移動可能な経路が特定された地図を生成する。このため、本実施例に係るサーバ装置30では、地図を自動生成することが可能になる。
【実施例2】
【0099】
さて、上記の実施例1では、アンカー20を出発してから同じアンカー20に戻るまでにデッドレコニングにより得られた位置誤差Δpと、ジャイロ11bの零点オフセットΔbとを含む評価関数Eを用いて、Δbを最適化する場合を説明した。そこで、実施例2では、位置誤差Δpをどの程度許容するかを示す係数εを移動軌跡の特徴を表すパラメータの関数とすることで、Δb以外の誤差要因の大きさを見積もった上でΔbを最適化する例について説明する。
【0100】
これを具体的に説明すると、ジャイロ11bの零点オフセットΔbを変化させて移動軌跡を再計算する場合には、図14に示すように、移動軌跡が変化する。図14は、零点オフセットΔbと移動軌跡との相関関係を示す図である。図14の例では、Δbの値をΔb1〜Δb5(Δb1<Δb2<Δb3<Δb4<Δb5)に変化させた場合における移動軌跡が図示されている。図14の例では、Δbが大きくなるほど初期状態の姿勢が左回りに変化し、これに伴って移動軌跡も左回りに変化することを示す。
【0101】
かかる「Δbをパラメータとして移動軌跡を最適化する」問題は、Δbの値によって図14に示すように変化する移動軌跡の中から、実際の移動軌跡と最も合致する移動軌跡に対応するΔbを求める問題と言える。
【0102】
ところが、デッドレコニングによって推定された移動軌跡を最適化する際には、実際の移動経路の情報は完全には得られない。このため、上記の実施例1では、移動軌跡の一部に関する情報を用いて評価を行う関数E0を設定していた。例えば、アンカー20を出発した時点に推定されていた位置p1とアンカー20に戻ってきた時点に推定された位置p2との差の2乗、すなわちE0=‖p1−p2‖(=‖Δp‖)を最小にする方法が挙げられる。なお、上記の実施例1では、上記の式(16)の評価関数EにおいてE0を‖Δp−SΔb‖とする場合を説明したが、ここでは、説明の便宜上、E0を‖p1−p2‖と簡略化して以下の説明を行うこととする。
【0103】
一方、位置誤差Δpが生じる要因には、ジャイロ11bの零点オフセットΔb以外の誤差の影響も存在する。かかるΔb以外の誤差の一例としては、加速度センサのセンサ値を用いて推定される歩行速度の誤差、オフセットで表せない角速度の誤差や推定計算時の線形化誤差などが挙げられる。
【0104】
このため、ジャイロ11bの零点オフセットΔbだけをパラメータとして、移動軌跡の一部に関する評価を表す評価関数Eの最適化を行うとすると、オーバーフィッティングが起こる場合がある。かかるオーバーフィッティングが起こると、移動軌跡は、部分的には真の軌跡に近くなるが、全体としてはずれが大きくなってしまう場合がある。
【0105】
図15は、オーバーフィッティングの一例を示す図である。図15に示す符号200は、実際の移動経路を指す。図15に示す符号201は、デッドレコニングによって推定された移動軌跡を指す。図15に示す符号202は、オーバーフィッティングによって歪んだ移動軌跡を指す。
【0106】
図15に示すように、デッドレコニングによって推定された移動軌跡201における位置p1及び位置p2の位置誤差をゼロに近づけようとするあまりに、ジャイロ11bの零点オフセットΔbを過度に大きく変化させると、オーバーフィッティングが起こる。すなわち、図15に示す移動軌跡202のように、位置p1及び位置p2の近傍では、実際の移動経路200に近くなるが、それ以外の部分では、実際の移動経路200と比較して大きく歪んでしまう。このように、Δb以外にも位置p1及び位置p2の位置誤差が生じる要因があるにもかかわらず、Δbを大きく変化させた場合には、オーバーフィッティングが起こる。
【0107】
このことから、上記の実施例1では、Δbをパラメータとして含む下記の式(22)を用いて、ジャイロ11bの零点オフセットΔbを最適化することにより、Δbを過度に大きくしてデッドレコニングにより推定された移動軌跡を歪めることにペナルティを課す。つまり、‖Δb‖を大きくしてもE0があまり改善しない場合には、Δbをそれ以上変化させないようにΔbの変化に抑制を効かせることができる。下記の式(22)を用いて最適化されたΔbを算出することによってジャイロ11bの零点オフセットΔb以外の誤差要因による移動軌跡のずれをある程度許容することができる。なお、下記のE0は、‖p1−p2‖(=‖Δp‖)を指し、また、下記の「ε」は、定数係数を指す。
【0108】
E=E0+ε‖Δb‖ ・・・(22)
【0109】
しかしながら、上記の式(22)を用いてΔbの最適化を行う場合には、デッドレコニングによって推定された移動軌跡を補正する効果にばらつきが生じる。すなわち、補正を実行する移動軌跡によってジャイロ11bの零点オフセットΔb以外の誤差要因の影響の大きさにばらつきがあるため、位置p1および位置p2のずれを一定の割合で許容していたのでは補正の効果にもばらつきが生じる。例えば、ジャイロ11bの零点オフセットΔb以外の誤差要因の影響が小さい場合には、位置p1および位置p2のずれを許容する割合が大きすぎると補正の効果が限定的になってしまう。また、ジャイロ11bの零点オフセットΔb以外の誤差要因の影響が大きい場合には、位置p1および位置p2のずれを許容する割合が小さすぎるとオーバーフィッティングが起こるおそれがある。
【0110】
そこで、本実施例では、位置誤差Δpを許容する度合いを示す許容係数εを移動軌跡の特徴を表すパラメータの関数とすることで、Δb以外の誤差要因の大きさを見積もった上でΔbを最適化する。
【0111】
[サーバ装置300の構成]
図16は、実施例2に係る測位システムに含まれる各装置の構成を示す機能ブロック図である。なお、本実施例では、上記の実施例1と同様の機能を発揮する機能部には同一の符号を付し、その説明を省略することとする。
【0112】
図16に示すサーバ装置300は、図1に示したサーバ装置30に比較して、関数導出部310と、移動軌跡算出部320と、誤差許容係数算出部330とを有する点が異なる。さらに、図16に示すサーバ装置300は、図1に示したオフセット算出部33及び補正部34との間で一部の処理内容が異なるオフセット算出部340及び補正部350を有する点が異なる。
【0113】
このうち、関数導出部310は、許容係数εの関数を導出する処理部である。ここで、上記の許容係数εは、位置誤差Δpを許容する度合いを示す係数を指す。かかる許容係数εの大きさによって、上記の式(22)を用いてΔbを最適化する場合に、E0で評価される位置p1および位置p2のずれを許容する度合いが決まる。つまり、許容係数εが小さいほどE0の最小化の割合は大きくなるので、位置p1および位置p2のずれを許容する度合いは小さくなる。一方、許容係数εが大きいほどE0の最小化の割合は小さくなるので、位置p1および位置p2のずれを許容する度合いは大きくなる。
【0114】
かかる許容係数εの関数は、移動距離dの2乗に比例する下記の式(23)が用いられる。このように、許容係数εを移動距離dの関数とするのは、ジャイロ11bの零点オフセットΔb以外の誤差要因の影響の大きさとデッドレコニングによって移動軌跡が推定される際の移動体による移動経路や移動方法との関係が深く、移動距離、移動時間や曲がった回数などの移動軌跡の特徴を示すパラメータと相関があるからである。なお、下記の式(23)では、位置p1および位置p2のずれが移動距離dに比例し、かかる位置p1および位置p2の差を含むE0が2乗されていることからE0の項と整合を取る観点から、許容係数εを移動距離dの2乗に比例する関数とする。
【0115】
ε=k×d ・・・(23)
【0116】
一態様としては、関数導出部310は、移動経路の形状が既知であるモデル経路が移動された場合のデッドレコニングの推定結果を用いてkをキャリブレーションすることによって、kを係数定数とした許容係数εの関数を導出する。
【0117】
これを説明すると、関数導出部310は、移動体によってモデル経路が移動された場合にデットレコニングされたモデル経路の移動軌跡を取得する。図17は、モデル経路の一例を示す図である。図17に示すように、関数導出部310は、移動体によって移動経路が既知であるモデル経路210が移動された場合にモーションセンサのセンサ値からデッドレコニングされたモデル経路の移動軌跡211を取得する。なお、ここでは、移動体端末10からデッドレコニングの推定結果を取得する場合を想定するが、予めアップロードされたものを記憶することとしてもよい。また、ここでは、既にデッドレコニングされた推定結果を取得することとしたが、移動体端末10からモーションセンサ11のセンサ値を取得した上でサーバ装置300がデットレコニングを実行することとしてもかまわない。
【0118】
続いて、関数導出部310は、デットレコニングされたモデル経路の移動軌跡の長さ、すなわちモデル経路の移動距離を算出する。例えば、関数導出部310は、モデル経路の始点から終点までの相対移動座標を取得する。その上で、移動軌跡算出部320は、各相対移動座標間の距離を累積加算することによってモデル経路の移動軌跡の長さ、すなわち移動距離dを算出する。なお、以下では、モデル経路の移動距離dのことを「d0」と表記する場合がある。
【0119】
そして、関数導出部310は、上記の式(22)における許容係数εを変化させながら上記の式(17)を用いてジャイロ11bの零点オフセットΔbの最適化計算を実行した上でそのΔbを用いてデッドレコニングにより得られた移動軌跡211を補正する。例えば、関数導出部310は、初期値εstを用いてジャイロ11bの零点オフセットΔbstの最適化計算を実行した上でそのΔbstを用いて移動軌跡211を補正する。その後、関数導出部310は、移動軌跡211の補正結果が得られる度に、初期値εstにシフト値Δεを加算して許容係数εが上限値εend以上になるまで許容係数εを増加させながら、各々の許容係数εごとに移動軌跡211の補正結果を算出する。
【0120】
その後、関数導出部310は、各々の許容係数εごとに得られた移動軌跡211の補正結果のうち最もモデル経路の形状と類似する補正結果を選択する。図18は、補正結果の選択方法を説明するための図である。図18に示すように、各々の許容係数εごとに得られた移動軌跡211の補正結果の中でも、実際のモデル経路210との間で最も形状が類似する補正結果211aが選択される。一例としては、関数導出部310は、各々の許容係数εごとに得られた移動軌跡211の補正結果と、実際のモデル経路の形状との間で画像のマッチング処理を実行した上で最も類似度が高い補正結果を選択することができる。他の一例としては、関数導出部310は、サーバ装置300のユーザインターフェースやサーバ装置300と接続されるコンソール等を介して、各々の許容係数εごとに得られた移動軌跡211の補正結果の中から選択を受け付けることもできる。
【0121】
そして、関数導出部310は、先に選択された移動軌跡211の補正に用いた許容係数ε0と、先に算出したモデル経路の移動距離d0とを用いて、下記の式(24)に示す許容係数εの関数を導出する。例えば、関数導出部310は、上記の式(23)に許容係数ε0と移動距離d0とを代入して「k=ε0/(d0)」に変形した上で、かかるkを上記の式(23)に改めて代入することによって下記の式(24)を導出する。
【0122】
ε=ε0×(d/d0) ・・・(24)
【0123】
移動軌跡算出部320は、差分特定部32によってアンカー20のループ経路の移動に関する位置誤差Δpが特定された場合に、当該ループ経路の移動軌跡の特徴を表すパラメータを算出する処理部である。一態様としては、移動軌跡算出部320は、ループ経路の移動が検知された移動体端末10を対象にループ経路の始点からループ経路の終点までの相対移動座標のログを取得する。その上で、移動軌跡算出部320は、各相対移動座標間の距離を累積加算することによってループ経路の移動軌跡の長さ、すなわち移動距離dを算出する。
【0124】
許容係数算出部330は、関数導出部310によって導出された許容係数εの関数を用いて、評価関数Eに用いる許容係数εを算出する処理部である。一例としては、許容係数算出部330は、移動軌跡算出部320によって算出されたループ経路の移動距離dを上記の式(24)に代入することによって許容係数εを算出する。なお、ここでは、許容係数εを移動距離dの関数とする場合を例示したが、移動軌跡の特徴を示すパラメータは移動距離に限定されない。すなわち、移動軌跡の特徴を示すパラメータとして、移動距離、移動時間、平均移動速度または曲がった回数のうち少なくともいずれか1つのパラメータによって定まる関数を許容係数εの関数とすることができる。
【0125】
オフセット算出部340は、許容係数算出部330によって算出された許容係数εを用いて、ジャイロ11bの零点オフセットΔbの最適化計算を実行する処理部である。一例としては、オフセット算出部340は、許容係数算出部330によって算出された許容係数εを上記の式(22)に代入した評価関数Eを最小化するΔbを上記の式(17)を用いて算出する。
【0126】
補正部350は、オフセット算出部340によって算出されたジャイロ11bの零点オフセットΔbを用いて、移動体端末10の移動軌跡を補正する処理部である。一例としては、補正部350は、オフセット算出部340によってジャイロ11bの零点オフセットΔbが算出された移動体端末10に関する相対移動座標のログを読み出す。その上で、補正部350は、ジャイロ11bの零点オフセットΔbを用いて、先に読み出した相対移動座標を再計算することにより、移動体端末10の移動軌跡を補正する。その後、補正部350は、補正後の移動軌跡を移動軌跡記憶部35へ格納する。
【0127】
[処理の流れ]
続いて、本実施例に係るサーバ装置の処理の流れについて説明する。なお、ここでは、(1)関数導出処理について説明した後に(2)移動軌跡補正処理について説明することとする。
【0128】
(1)関数導出処理
図19は、実施例2に係る関数導出処理の手順を示すフローチャートである。この関数導出処理は、サーバ装置300の電源がON状態である場合に実行される処理であり、移動体端末10からモデル経路の移動軌跡の推定結果がアップロードされた場合に起動される。
【0129】
図19に示すように、モデル経路が移動された場合の移動軌跡の推定結果を取得すると(ステップS201)、サーバ装置300は、モデル経路の移動軌跡の長さ、すなわちモデル経路の移動距離d0を算出する(ステップS202)。
【0130】
続いて、サーバ装置300は、許容係数εに初期値εstを設定する(ステップS203)。そして、サーバ装置300は、許容係数εを用いてジャイロ11bの零点オフセットΔbstの最適化計算を実行する(ステップS204)。その上で、サーバ装置300は、最適化計算を行ったΔbstを用いて移動軌跡211を補正する(ステップS205)。
【0131】
その後、許容係数εが上限値εend以上になるまで(ステップS206否定)、サーバ装置300は、許容係数εにシフト値Δεをインクリメントし(ステップS207)、上記のステップS204及びステップS205を繰り返し実行する。
【0132】
そして、許容係数εが上限値εend以上になった場合(ステップS206肯定)に、サーバ装置300は、各々の許容係数εごとに得られた移動軌跡211の補正結果のうち最もモデル経路の形状と類似する補正結果を選択する(ステップS208)。
【0133】
最後に、サーバ装置300は、先に選択された移動軌跡211の補正に用いた許容係数ε0と、先に算出したモデル経路の移動距離d0とを用いて、下記の式(24)に示す許容係数εの関数を導出し(ステップS209)、処理を終了する。
【0134】
(2)移動軌跡補正処理
図20は、実施例2に係る移動軌跡補正処理の手順を示すフローチャートである。この移動軌跡補正処理は、サーバ装置300の電源がON状態である場合に実行される処理であり、差分特定部32によって移動体端末10によるループ経路の移動が検知された場合に起動される。
【0135】
図20に示すように、サーバ装置300は、移動履歴記憶部31からループ経路の始点から終点までの相対移動座標のログを取得する(ステップS301)。ループ経路の移動軌跡の特徴を表すパラメータとしてループ経路の移動軌跡の長さ、すなわちループ経路の移動距離dを算出する(ステップS302)。
【0136】
続いて、サーバ装置300は、上記の関数導出処理によって導出された許容係数εの関数に上記のステップS302で算出されたループ経路の移動距離dを代入することによって評価関数Eに用いる許容係数εを算出する(ステップS303)。
【0137】
そして、サーバ装置300は、ステップS303で算出された許容係数εを用いて、ジャイロ11bの零点オフセットΔbの最適化計算を実行する(ステップS304)。その後、サーバ装置300は、ステップS304で最適化計算されたジャイロ11bの零点オフセットΔbを用いて、移動体端末10の移動軌跡を補正し(ステップS305)、処理を終了する。
【0138】
[実施例2の効果]
上述してきたように、本実施例に係るサーバ装置300は、ループ経路の移動軌跡の特徴を表すパラメータを算出する。さらに、本実施例に係るサーバ装置300は、移動軌跡の特徴を表すパラメータを用いて、位置p1および位置p2のずれを誤差として残すことを許容する度合いを表す許容係数εを算出する。さらに、本実施例に係るサーバ装置300は、位置p1および位置p2のずれと、零点オフセットΔb及び許容係数εの乗算値とを含む評価関数Eを用いて、ジャイロ11bの零点オフセットΔbを算出する。
【0139】
このため、本実施例に係るサーバ装置300では、ジャイロ11bの零点オフセットΔb以外の誤差要因の大きさを見積もった上でΔbを最適化できる。それゆえ、本実施例に係るサーバ装置300では、移動体端末10の移動軌跡を実際の移動経路に近い移動軌跡に補正することが可能になる。
【0140】
図21〜図23を用いて、移動軌跡の補正効果について説明する。図21は、補正前の移動軌跡の一例を示す図である。図22及び図23は、補正後の移動軌跡の一例を示す図である。このうち、図22の例では、上記の式(22)の許容係数ε(=120000)を固定としてジャイロ11bの零点オフセットΔbの最適化計算およびそのΔbを用いた移動軌跡の補正が実行された例を示す。一方、図23の例では、上記の式(24)にループ経路の移動距離d(=110.8858m)を代入して算出された許容係数ε(=573478)を用いてジャイロ11bの零点オフセットΔbの最適化計算およびそのΔbを用いた移動軌跡の補正が実行された例を示す。なお、図23の例では、上記の式(24)の許容係数εの関数においてε0が「120000」であり、d0が「50.7234m」である場合を想定する。
【0141】
図21に示すように、補正前にデッドレコニングによって推定されていた移動軌跡220は、ループ経路であるはずの始点および終点が大きく乖離しており、図22に示す実際の移動経路230に比べて大きく歪んでいる。一方、図22及び図23に示すように、固定の許容係数εを用いた場合およびループ経路の移動距離dから算出した許容係数εを用いた場合には、補正後の移動軌跡240が移動軌跡220に比べて実際の移動経路230に近づいていることがわかる。
【0142】
この補正後の移動軌跡240と実際の移動経路230との間で対応点の誤差、図22に示す移動軌跡240の丸部分と移動経路230の丸部分との距離を計算したところ、各対応点の平均誤差は「1.8m」であった。一方、補正後の移動軌跡250と実際の移動経路230との間で対応点の誤差、図23に示す移動軌跡250の丸部分と移動経路230の丸部分との距離を計算したところ、各対応点の平均誤差は「1.3m」であった。このことから、許容係数εを固定とする場合よりも、ループ経路の移動距離から許容係数εを動的に算出した方が実際の移動経路230に近いことがわかる。
【実施例3】
【0143】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0144】
[サービスへの適用例1]
例えば、開示の装置は、移動軌跡記憶部35に記憶された移動体端末10のグローバル座標のログ、すなわち移動体端末10の移動軌跡を用いて、マーケティングサービスを提供できる。
【0145】
一例としては、サーバ装置30又は300は、売り場、あるいは各種の展示が行われるブースなどの座標を記憶しておき、各移動体端末10の移動軌跡から利用者間で売り場やブースを経由する順路の重複率が閾値よりも大きい経路をリストアップする。かかるリストアップを実行することによって、利用者が入口から売り場A、売り場C、売り場Eの順に売り場を経由して出口から退場する傾向が高いなどのように傾向分析を行うことができる。この傾向分析によって、例えば、多くの利用者が通過する売り場やブースの近傍に広告等を配置したりすることができる。
【0146】
他の一例としては、サーバ装置30又は300は、集客率が閾値よりも高い売り場やブースをリストアップすることもできる。かかるリストアップを実行することによって、利用者が集まりやすい売り場やブースを集客分析することもできる。この集客分析によって、例えば、多くの利用者が集まる売り場やブースの近傍に広告等を配置したりすることができる。
【0147】
このように、マーケティングサービスを提供する場合には、移動体端末10にはスマートフォンを始めとする利用者所有の端末のみならず、モーションセンサ11を搭載したマーケティングサービス専用の端末を用いることもできる。例えば、買い物や荷物を収納するカーゴにモーションセンサ11、アンカー検知部12や位置推定部13などの機能部を設けることもできる。
【0148】
[サービスへの適用例2]
また、開示の装置は、マーケティングサービス以外にも業務改善サービスにも適用することもできる。一例としては、サーバ装置30又は300は、企業の社員のデスク、喫煙所や食堂などの座標を記憶しておき、社員が所持する移動体端末10の移動軌跡から各社員の時間帯別の所在位置や食事及び喫煙の回数などをリストアップすることができる。かかるリストアップを実行することによって、例えば、退勤指導を行ったりすることができる。他の一例としては、サーバ装置30又は300は、工場の社員が所持する移動体端末10の移動軌跡から各社員の動線が重なる回数が閾値以上である場所をリストアップすることもできる。かかるリストアップを実行することによって、例えば、社員の動線が重ならないように工場内の機器を再配置したりすることができる。
【0149】
上記の適用例1及び適用例2に示したサービスは、GPSの精度が低下する屋内等でも好適に適用することができる。
【0150】
また、上記の実施例1では、アンカー20を用いて第1の地点から第2の地点に移動したことを自動検知する場合を例示したが、移動体端末10を携帯する利用者が第1の地点及び第2の地点への到着をサーバ装置30へ指示入力するようにしてもよい。
【0151】
また、上記の実施例1では、サーバ装置30が誤差特定部32、オフセット算出部33、補正部34、アンカー特定部36、仮想アンカー生成部37及び地図生成部38を有する場合を説明したが、開示のシステムはこれに限定されない。例えば、移動体端末10が誤差特定部32、オフセット算出部33、補正部34、アンカー特定部36、仮想アンカー生成部37及び地図生成部38を有することとしてもよい。また、上記の実施例2では、サーバ装置300が関数導出部310、移動軌跡算出部320、許容係数算出部330、オフセット算出部340及び補正部350を有する場合を説明したが、開示のシステムはこれに限定されない。例えば、移動体端末10が関数導出部310、移動軌跡算出部320、許容係数算出部330、オフセット算出部340及び補正部350を有することとしてもよい。
【0152】
また、開示の装置では、所定の範囲内に所在する他の移動体端末10から該移動体端末10の位置を受信し、受信した他の移動体端末10の位置を用いて、デッドレコニングにより推定される移動体端末10の位置を補正することもできる。これによって、アンカー20の位置が分かったり、仮想アンカーが環境中に設定されたりすると、移動体端末10は位置を補正する機会を増やすことができる。このように位置が補正された移動体の位置情報を、他の移動体端末10が活用して位置補正に利用することができる。
【0153】
一例としては、移動体端末10は、他の移動体端末10と距離が所定値以内に近づくと、互いにデッドレコニングで推定した位置を通信する。このとき、一方の移動体端末10の位置が他方の移動体端末10の位置より精度が良い場合には、精度の良い方、例えば前回にキャリブレーションが行われてからの移動量が少ない方の移動体端末10をアンカーと見なし、その位置情報を利用して位置を補正する。
【0154】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、誤差特定部32、オフセット算出部33、補正部34、アンカー特定部36、仮想アンカー生成部37又は地図生成部38をサーバ装置の外部装置としてネットワーク経由で接続するようにしてもよい。また、誤差特定部32、オフセット算出部33、補正部34、アンカー特定部36、仮想アンカー生成部37又は地図生成部38を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、サーバ装置の機能を実現するようにしてもよい。
【0155】
[キャリブレーションプログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図24を用いて、上記の実施例と同様の機能を有するキャリブレーションプログラムを実行するコンピュータの一例について説明する。
【0156】
図24は、実施例1〜実施例3に係るキャリブレーションプログラムを実行するコンピュータの一例について説明するための図である。図24に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180と有する。これら110〜180の各部はバス140を介して接続される。
【0157】
HDD170には、上記の実施例1で示した誤差特定部32、オフセット算出部33、補正部34、アンカー特定部36、仮想アンカー生成部37及び地図生成部38と同様の機能を発揮するキャリブレーションプログラム170aが予め記憶される。また、HDD170には、関数導出部310、移動軌跡算出部320、許容係数算出部330、オフセット算出部340及び補正部350と同様の機能をさらに発揮するキャリブレーションプログラム170aが記憶されることとしてもかまわない。このキャリブレーションプログラム170aについては、図1に示した各々の誤差特定部32、オフセット算出部33、補正部34、アンカー特定部36、仮想アンカー生成部37及び地図生成部38の各構成要素と同様、適宜統合又は分離しても良い。また、キャリブレーションプログラム170aは、図16に示した関数導出部310、移動軌跡算出部320、許容係数算出部330、オフセット算出部340及び補正部350の各構成要素と同様、適宜統合又は分散しても良い。すなわち、HDD170に格納される各データは、常に全てのデータがHDD170に格納される必要はなく、処理に必要なデータのみがHDD170に格納されれば良い。
【0158】
そして、CPU150が、キャリブレーションプログラム170aをHDD170から読み出してRAM180に展開する。これによって、図24に示すように、キャリブレーションプログラム170aは、キャリブレーションプロセス180aとして機能する。このキャリブレーションプロセス180aは、HDD170から読み出した各種データを適宜RAM180上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、キャリブレーションプロセス180aは、図1に示した誤差特定部32、オフセット算出部33、補正部34、アンカー特定部36、仮想アンカー生成部37及び地図生成部38にて実行される処理、例えば図13に示す処理を含む。また、キャリブレーションプロセス180aは、図16に示した関数導出部310、移動軌跡算出部320、許容係数算出部330、オフセット算出部340及び補正部350にて実行される処理、例えば図19や図20に示す処理を含む。なお、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【0159】
なお、上記のキャリブレーションプログラム170aについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。
【0160】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0161】
(付記1)コンピュータが、
加速度センサ及び角速度センサを保持する移動体が第1の地点から位置または角度の誤差が特定量となる第2の地点へ移動した場合に、前記加速度センサ及び前記角速度センサの出力を用いたデッドレコニングにより前記第2の地点で得られる位置または角度と前記特定量との差分を特定し、
特定結果として得られた差分から、当該移動体が静止状態である場合に前記角速度センサによって出力されるセンサ値である零点オフセットを算出する
各処理を実行することを特徴とするキャリブレーション方法。
【0162】
(付記2)前記第1の地点を始点とし、前記第2の地点を終点として形成されるループ経路には、識別情報を発信する発信機が設置されており、
前記差分を特定する処理として、
前記発信機から前記識別情報が受信されなくなった時点から前記識別情報と同一の識別情報が再度受信される時点までに前記デッドレコニングにより前記第2の地点で推定された位置または角度と前記特定量との差分を特定する処理を実行することを特徴とする付記1に記載のキャリブレーション方法。
【0163】
(付記3)前記コンピュータが、
前記第1の地点から前記第2の地点までの移動軌跡の特徴を表すパラメータを算出し、
前記移動軌跡の特徴を表すパラメータを用いて、前記第1の地点および前記第2の地点で推定される位置の差分を誤差として残すことを許容する度合いを表す許容係数を算出する各処理をさらに実行し、
前記角速度センサの零点オフセットを算出する処理として、
前記第1の地点および前記第2の地点で推定される位置の差分と、前記零点オフセット及び前記許容係数の乗算値とを含む評価関数を用いて、前記角速度センサの零点オフセットを算出する処理を実行することを特徴とする付記2に記載のキャリブレーション方法。
【0164】
(付記4)前記コンピュータが、
前記角速度センサの零点オフセットに基づいて前記移動体の移動軌跡を補正し、
補正後の移動体の移動軌跡上で識別情報が受信された発信機の位置を特定する各処理をさらに実行することを特徴とする付記2または3に記載のキャリブレーション方法。
【0165】
(付記5)前記コンピュータが、
前記角速度センサの零点オフセットに基づいて前記移動体の移動軌跡を補正し、
補正後の移動体の移動軌跡上で前記加速度センサおよび/または前記角速度センサによって検出される速度、加速度および/または角速度の時間変化が所定の特徴パターンを満たす地点の相対位置を抽出する各処理をさらに実行し、
前記角速度センサの零点オフセットを算出する処理として、
前記相対位置を用いて前記角速度センサの零点オフセットを算出する処理を実行することを特徴とする付記1〜4のいずれか1つに記載のキャリブレーション方法。
【0166】
(付記6)前記コンピュータが、
所定の範囲内に所在する他の移動体から該移動体の位置を受信し、
受信した他の移動体の位置を用いて、前記デッドレコニングにより推定される移動体の位置を補正する
各処理をさらに実行することを特徴とする付記1〜5のいずれか一つに記載のキャリブレーション方法。
【0167】
(付記7)前記コンピュータが、
前記角速度センサの零点オフセットに基づいて前記移動体の移動軌跡を補正し、
複数の移動体の移動軌跡を記憶する移動軌跡記憶部を参照して、各移動体の移動軌跡を重ね合わせることにより移動可能な経路が特定された地図を生成する各処理を実行することを特徴とする付記1〜6のいずれか一つに記載のキャリブレーション方法。
【0168】
(付記8)加速度センサ及び角速度センサを保持する移動体が第1の地点から位置または角度の誤差が特定量となる第2の地点へ移動した場合に、前記加速度センサ及び前記角速度センサの出力を用いたデッドレコニングにより前記第2の地点で得られる位置または角度と前記特定量との差分を特定する特定部と、
前記特定部によって特定された差分から、当該移動体が静止状態である場合に前記角速度センサによって出力されるセンサ値である零点オフセットを算出する算出部と
を有することを特徴とする情報処理装置。
【0169】
(付記9)コンピュータに、
加速度センサ及び角速度センサを保持する移動体が第1の地点から位置または角度の誤差が特定量となる第2の地点へ移動した場合に、前記加速度センサ及び前記角速度センサの出力を用いたデッドレコニングにより前記第2の地点で得られる位置または角度と前記特定量との差分を特定し、
特定結果として得られた差分から、当該移動体が静止状態である場合に前記角速度センサによって出力されるセンサ値である零点オフセットを算出する
各処理を実行させることを特徴とするキャリブレーションプログラム。
【符号の説明】
【0170】
1 測位システム
10 移動体端末
20 アンカー
30 サーバ装置
31 移動履歴記憶部
32 誤差特定部
33 オフセット算出部
34 補正部
35 移動軌跡記憶部
36 アンカー特定部
36a アンカー記憶部
37 仮想アンカー生成部
37a 仮想アンカー記憶部
38 地図生成部

【特許請求の範囲】
【請求項1】
コンピュータが、
加速度センサ及び角速度センサを保持する移動体が第1の地点から位置または角度の誤差が特定量となる第2の地点へ移動した場合に、前記加速度センサ及び前記角速度センサの出力を用いたデッドレコニングにより前記第2の地点で得られる位置または角度と前記特定量との差分を特定し、
特定結果として得られた差分から、当該移動体が静止状態である場合に前記角速度センサによって出力されるセンサ値である零点オフセットを算出する
各処理を実行することを特徴とするキャリブレーション方法。
【請求項2】
前記第1の地点を始点とし、前記第2の地点を終点として形成されるループ経路には、識別情報を発信する発信機が設置されており、
前記差分を特定する処理として、
前記発信機から前記識別情報が受信されなくなった時点から前記識別情報と同一の識別情報が再度受信される時点までに前記デッドレコニングにより前記第2の地点で推定された位置または角度と前記特定量との差分を特定する処理を実行することを特徴とする請求項1に記載のキャリブレーション方法。
【請求項3】
前記コンピュータが、
前記第1の地点から前記第2の地点までの移動軌跡の特徴を表すパラメータを算出し、
前記移動軌跡の特徴を表すパラメータを用いて、前記第1の地点および前記第2の地点で推定される位置の差分を誤差として残すことを許容する度合いを表す許容係数を算出する各処理をさらに実行し、
前記角速度センサの零点オフセットを算出する処理として、
前記第1の地点および前記第2の地点で推定される位置の差分と、前記零点オフセット及び前記許容係数の乗算値とを含む評価関数を用いて、前記角速度センサの零点オフセットを算出する処理を実行することを特徴とする請求項2に記載のキャリブレーション方法。
【請求項4】
前記コンピュータが、
前記角速度センサの零点オフセットに基づいて前記移動体の移動軌跡を補正し、
補正後の移動体の移動軌跡上で識別情報が受信された発信機の位置を特定する各処理をさらに実行することを特徴とする請求項2または3に記載のキャリブレーション方法。
【請求項5】
前記コンピュータが、
前記角速度センサの零点オフセットに基づいて前記移動体の移動軌跡を補正し、
補正後の移動体の移動軌跡上で前記加速度センサおよび/または前記角速度センサによって検出される速度、加速度および/または角速度の時間変化が所定の特徴パターンを満たす地点の相対位置を抽出する各処理をさらに実行し、
前記角速度センサの零点オフセットを算出する処理として、
前記相対位置を用いて前記角速度センサの零点オフセットを算出する処理を実行することを特徴とする請求項1〜4のいずれか1つに記載のキャリブレーション方法。
【請求項6】
前記コンピュータが、
所定の範囲内に所在する他の移動体から該移動体の位置を受信し、
受信した他の移動体の位置を用いて、前記デッドレコニングにより推定される移動体の位置を補正する
各処理をさらに実行することを特徴とする請求項1〜5のいずれか一つに記載のキャリブレーション方法。
【請求項7】
前記コンピュータが、
前記角速度センサの零点オフセットに基づいて前記移動体の移動軌跡を補正し、
複数の移動体の移動軌跡を記憶する移動軌跡記憶部を参照して、各移動体の移動軌跡を重ね合わせることにより移動可能な経路が特定された地図を生成する各処理を実行することを特徴とする請求項1〜6のいずれか一つに記載のキャリブレーション方法。
【請求項8】
加速度センサ及び角速度センサを保持する移動体が第1の地点から位置または角度の誤差が特定量となる第2の地点へ移動した場合に、前記加速度センサ及び前記角速度センサの出力を用いたデッドレコニングにより前記第2の地点で得られる位置または角度と前記特定量との差分を特定する特定部と、
前記特定部によって特定された差分から、当該移動体が静止状態である場合に前記角速度センサによって出力されるセンサ値である零点オフセットを算出する算出部と
を有することを特徴とする情報処理装置。
【請求項9】
コンピュータに、
加速度センサ及び角速度センサを保持する移動体が第1の地点から位置または角度の誤差が特定量となる第2の地点へ移動した場合に、前記加速度センサ及び前記角速度センサの出力を用いたデッドレコニングにより前記第2の地点で得られる位置または角度と前記特定量との差分を特定し、
特定結果として得られた差分から、当該移動体が静止状態である場合に前記角速度センサによって出力されるセンサ値である零点オフセットを算出する
各処理を実行させることを特徴とするキャリブレーションプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2012−215547(P2012−215547A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2011−255468(P2011−255468)
【出願日】平成23年11月22日(2011.11.22)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】