(58)【調査した分野】(Int.Cl.,DB名)
前記特定部は、前記所定の状態として、前記端末装置が移動していない状態で前記検出部が検出した加速度の平均値を用いて、前記重力方向を特定することを特徴とする請求項1または2に記載の推定装置。
前記推定部は、前記検出部が重力加速度を検出した方向を所定の軸方向に一致させる回転式を用いて、前記検出部が検出した加速度を前記重力加速度の方向に基づく移動方向の加速度に変換し、当該変換後の加速度を用いて、前記移動方向を推定することを特徴とする請求項1〜3のうちいずれか1つに記載の推定装置。
前記推定部は、前記重力方向に対して垂直な平面上の方向であって、前記移動方向に対して垂直な方向に対する加速度に基づいて、前記端末装置の移動方向の変化を検出することを特徴とする請求項6に記載の推定装置。
前記推定部は、前記重力方向に対して垂直な平面上における加速度のばらつきを算出し、当該算出したばらつきが最大となる方向を前記移動方向と推定することを特徴とする請求項1〜7のいずれか1つに記載の推定装置。
前記検出部は、所定の時間が経過するまでの間に検出された複数の加速度の値の平均値、または、連続して検出された所定の数の加速度の値の平均値を算出し、当該算出した平均値を、検出された加速度の平均値の値として出力することを特徴とする請求項1〜8のいずれか1つに記載の推定装置。
前記判定部は、端末装置が移動している間、および、移動していない間に測定された加速度の値が有する特徴を学習したサポートベクトルマシンを用いて、前記端末装置が移動しているか否かを判定することを特徴とする請求項10に記載の推定装置。
前記算出部は、前記端末装置が移動を開始してから停止するまでの間に検出された加速度の積分値が零となるように、前記検出部が検出した加速度の値を補正することを特徴とする請求項12〜14のいずれか1つに記載の推定装置。
前記算出部は、前記加速度の積分値が、衛星からの信号に基づいて算出された前記端末装置の移動速度と一致するように、前記検出部が検出した加速度の値を補正することを特徴とする請求項12〜15のいずれか1つに記載の推定装置。
【発明を実施するための形態】
【0011】
以下に、本願に係る推定装置、移動方向推定方法及び移動方向推定プログラムを実施するための形態(以下、「実施形態」と呼ぶ。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る推定装置、移動方向推定方法及び移動方向推定プログラムが限定されるものではない。また、以下の各実施形態において同一の部位及び処理には同一の符号を付し、重複する説明は省略される。
【0012】
また、以下の説明では、推定装置が実行する処理として、利用者が乗車した車両を目的地まで案内するカーナビゲーションの一例について説明するが、実施形態は、これに限定されるものではない。例えば、推定装置は、利用者が歩行している場合や列車等、車両以外の交通手段を利用している場合にも、以下に説明する処理を実行し、利用者を目的地まで案内する処理を実行してもよい。
【0013】
〔1.作用効果の概要〕
まず、
図1を用いて、推定装置の一例である端末装置100が発揮する作用効果の概念について説明する。
図1は、実施形態に係る端末装置が発揮する作用効果の一例を説明するための図である。例えば、端末装置100は、スマートフォン、タブレット端末やPDA(Personal Digital Assistant)等の移動端末、ノート型PC(Personal Computer)等の端末装置であり、移動通信網や無線LAN(Local Area Network)等のネットワークNを介して、任意のサーバと通信可能な端末装置である。
【0014】
また、端末装置100は、利用者が乗車した車両を目的地まで案内するカーナビゲーションの機能を有する。例えば、端末装置100は、利用者から目的地の入力を受付けると、利用者を目的地まで誘導するための経路情報を、図示を省略したサーバ等から取得する。例えば、経路情報には、車両が利用可能な目的地までの経路、経路に含まれる高速道路の情報、経路上の渋滞情報、案内の目印となる施設、画面上に表示する地図の情報、案内時に出力する音声や地図等の画像等のデータが含まれる。
【0015】
また、端末装置100は、GPS(Global Positioning System)等の衛星測位システムを用いて、端末装置100の位置(以下、「現在地」と記載する。)を所定の時間間隔で特定する測位機能を有する。そして、端末装置100は、経路情報に含まれる地図等の画像を液晶画面やエレクトロルミネッセンス、LED(Light Emitting Diode)画面等(以下、単に「画面」と記載する。)に表示すると共に、特定した現在地をその都度地図上に表示する。また、端末装置100は、特定した現在地に応じて、左折や右折、使用する車線の変更、目的地への到着予定時間等を表示、若しくは、端末装置100や車両のスピーカー等から音声により出力する。
【0016】
ここで、衛星測位システムでは、複数の衛星から発信された信号を受信し、受信した信号を用いて、端末装置100の現在地を特定する。このため、端末装置100は、トンネルの中やビル群に挟まれた場所等、衛星から発信された信号を適切に受信できない場合には、現在地を特定することができない。また、端末装置100に案内を実現させるアプリケーション等は、車両から速度や移動方向等の情報を取得する機能を有していない。このため、加速度を測定する加速度センサを端末装置100に設置し、加速度センサが測定した加速度に基づいて、端末装置100の位置を推定する手法が考えられる。
【0017】
例えば、
図1の(A)に示すように、端末装置100は、画面の短尺方向をx軸とし、画面の長尺方向をy軸とし、画面に対して垂直な方向をz軸として、各xyz軸方向の加速度を測定する。例えば、端末装置100は、画面を正面とした際に、正面側を+z軸方向、背面側を−z軸方向とし、端末装置100の利用時において画面上側を+x軸方向、画面下側を−x軸方向、画面左側を+y軸方向、画面右側を−y軸方向とする端末座標系における加速度を測定する。
【0018】
一方、
図1の(B)に示すように、利用者が使用する車両C10の移動方向や速度は、車両が進行する方向をZ軸とし、Z軸に対して垂直な平面上において、車両が進行する際に左折若しくは右折する方向をY軸方向とし、車両の上下方向をX軸方向とする車両座標系で表される。例えば、車両C10の移動方向や速度は、車両の上方向を+X軸方向、下方向(すなわち、地面側)を−X軸方向、左折する方向を+Y軸方向、右折する方向を−Y軸方向、車両の後ろ方向を+Z軸方向、前方向を−Z軸方向とする車両座標系で表される。
【0019】
このため、端末装置100は、端末座標系で測定した加速度を車両座標系に変換し、変換後の加速度を用いて、車両の移動方向や速度を測定することとなる。しかしながら、端末装置100は、例えば、助手席の利用者が手で保持しているか、ホルダに保持されているか、ホルダが端末装置100を保持する角度、利用者が乗車している車両の車種等に応じて、設置姿勢がその都度異なる。このため、設置姿勢が不明である場合は、加速度を測定したとしても、端末座標系を車両座標系へと変換することができない。
【0020】
そこで、端末装置100は、推定処理を実行する。まず、端末装置100は、端末装置100に対する加速度を検出する加速度センサを有する。また、端末装置100は、所定の状態で検出された加速度の平均値を用いて、車両座標系における重力方向を特定する。そして、端末装置100は、加速度センサが検出した加速度から、特定した重力方向に基づく移動方向、すなわち、車両座標系における車両C10の移動方向を推定する。
【0021】
以下、図を用いて、上述した推定処理を実現する端末装置100の機能構成及び作用効果の一例を説明する。
【0022】
〔2.機能構成の一例〕
図2は、実施形態に係る端末装置が有する機能構成の一例を説明する図である。
図2に示すように、端末装置100は、通信部11、記憶部12、複数の加速度センサ13a〜13c(以下、総称して「加速度センサ13」と記載する場合がある。)、GPS受信アンテナ14、出力部15、制御部16を有する。通信部11は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部11は、ネットワークNと有線または無線で接続され、端末装置100と、端末装置100から目的地を受信すると、目的地までの経路を示す経路情報を配信する配信サーバとの間で情報の送受信を行う。
【0023】
記憶部12は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部12は、案内を実行するために用いる各種のデータである案内情報データベース12aを有する。例えば、案内情報データベース12aには、図示を省略したサーバ等から受信した目的地までの経路情報が格納される。
【0024】
加速度センサ13は、所定の時間間隔(例えば、5ミリ秒)で、端末装置100に係る加速度の大きさと方向とを測定する。例えば、加速度センサ13aは、端末座標系におけるx軸方向の加速度を測定する。加速度センサ13bは、端末座標系におけるy軸方向の加速度を測定する。加速度センサ13cは、端末座標系におけるz軸方向の加速度を測定する。すなわち、端末装置100は、各加速度センサ13a〜13cが測定した加速度を端末座標系の各軸方向の加速度とすることで、端末装置100に対する加速度の向きと大きさとを示すベクトルを取得することができる。
【0025】
GPS受信アンテナ14は、GPS等の衛星測位システムに用いられる信号を衛星から受信するためのアンテナである。また、出力部15は、案内を行う際に地図や現在地を表示するための画面や、音声を出力するためのスピーカーである。
【0026】
制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等によって、端末装置100内部の記憶装置に記憶されている各種プログラムが、RAM等の記憶領域を作業領域として実行されることにより実現される。
図2に示す例では、制御部13は、案内実行部17、音声出力部18、画像出力部19、方向推定部20(以下、総称して各処理部17〜20と記載する場合がある。)とを有する。また、方向推定部20は、検出部21、特定部22、判定部23、推定部24、算出部25とを有する。
【0027】
なお、制御部13が有する各処理部17〜20の接続関係は、
図2に示した接続関係に限られず、他の接続関係であってもよい。また、各処理部17〜20は、以下に説明するような案内処理の機能・作用(例えば
図1)を実現・実行するものであるが、これらは説明のために整理した機能単位であり、実際のハードウェア要素やソフトウェアモジュールとの一致は問わない。すなわち、以下の案内処理の機能・作用を実現・実行することができるのであれば、端末装置100は、任意の機能単位で案内処理を実現・実行して良い。
【0028】
〔3.案内処理における作用効果の一例〕
以下、
図3に示すフローチャートを用いて、各処理部17〜20が実行・実現する案内処理の内容について説明する。
図3は、実施形態に係る端末装置が実行する案内処理の流れの一例を説明するフローチャートである。
【0029】
まず、案内実行部17は、利用者から目的地が入力されたか否かを判定する(ステップS101)。そして、案内実行部17は、目的地が入力された場合は(ステップS101:Yes)、図示を省略した外部のサーバから経路情報を取得する(ステップS102)。ここで、案内実行部17は、GPSが使えるか否かを判定する(ステップS103)。
【0030】
例えば、案内実行部17は、GPS受信アンテナ14が衛星からの信号を受信できない場合や、信号を受信できた衛星の数が所定の閾値よりも少ない場合等には、GPSが使用できないと判定し(ステップS103:Yes)、方向推定部20により推定された車両C10の移動方向や速度から現在地を取得する(ステップS104)。例えば、案内実行部17は、現在地として前回GPSから特定もしくは推定した場所を起点として、方向推定部20により推定された移動方向に、推定された速度で移動した際の場所を新たな現在地として推定する。なお、方向推定部20が車両C10の移動方向や速度を推定する推定処理の具体的な内容については、後述する。
【0031】
一方、案内実行部17は、GPSが使えると判定した場合は(ステップS103:No)、GPSを用いて現在地を特定する(ステップS105)。そして、案内実行部17は、音声出力部18や画像出力部19を制御し、GPSを用いた現在地若しくは推定した現在地を用いて、案内を出力する(ステップS106)。例えば、音声出力部18は、案内実行部17からの制御に従って、現在地や車両C10が進むべき方向等を示す音声を出力部15から出力する。また、画像出力部19は、案内実行部17からの制御に従って、現在地と周辺の地図とを重ねた画像や、車両C10が進むべき方向等を示す画像を出力部15から出力する。
【0032】
続いて、案内実行部17は、現在位置が目的地の周辺であるか否かを判定する(ステップS107)。そして、案内実行部17は、現在地が目的地の周辺であると判定した場合は(ステップS107:Yes)、音声出力部18や画像出力部19を制御して案内の終了を示す終了案内を出力し(ステップS108)、処理を終了する。一方、案内実行部17は、現在地が目的地の周辺ではないと判定した場合は(ステップS107:No)、ステップS103を実行する。なお、案内実行部17は、目的地が入力されていない場合は(ステップS101:No)、入力されるまで待機する。
【0033】
〔4.推定処理における作用効果の一例〕
次に、
図4に示すフローチャートを用いて、方向推定部20が有する検出部21、特定部22、判定部23、推定部24、算出部25が実行・実現する案内処理の内容について説明する。
図4は、実施形態に係る端末装置が実行する推定処理の流れの一例を説明するフローチャートである。
【0034】
まず、検出部21は、加速度センサ13から加速度を取得する(ステップS201)。ここで、加速度センサ13が測定する加速度の値にはノイズが含まれると考えられる。そこで、検出部21は、ローパスフィルタの一種である移動平均法を用いて、各加速度センサ13a〜13cごとに、測定された加速度の平均値を算出する(ステップS202)。ここで、移動平均法とは、連続して測定されたデータが存在する場合に、直近に測定された複数個のデータの平均を算出する手法である。
【0035】
具体的には、検出部21は、所定の時間が経過するまでの間に検出された複数の加速度の値の平均値、または、連続して検出された所定の数の加速度の値の平均値を、検出された加速度の平均値の値として出力する。例えば、検出部21は、時刻t−nから時刻tまでの間に加速度センサ13aが測定した加速度の値の平均値を、加速度センサ13aが時刻tにおいて測定した加速度の値とし、時刻t−n+1から時刻t+1までの間に加速度センサ13aが測定した加速度の値の平均値を、加速度センサ13aが時刻t+1において測定した加速度の値とする。
【0036】
続いて、判定部23は、加速度の値が有する特徴に基づいて、端末装置100が移動しているか否かを判定する(ステップS203)。例えば、判定部23は、端末装置100が移動している間、および、移動していない間に測定された加速度の値が有する特徴を学習させたサポートベクトルマシン(SVM:Support Vector Machine)を用いて、端末装置100が移動しているか否かを判定する。
【0037】
ここで、サポートベクトルマシンとは、教師データが有する特徴を学習する学習モデル(すなわち、教師あり学習により生成されたモデル)の一種である。例えば、判定部23が利用するSVMは、ある車両が停止している際に測定された3軸方向の加速度を示す停止データと、加速中若しくは移動中に測定された3軸方向の加速度を示す走行データとを教師データとして、停止データと走行データとを精度良く切り分けられるように、データが有する特徴量の学習を行った学習モデルである。例えば、SVMは、各軸方向ごとに、測定された加速度の値のうち一定時間(例えば、1秒)の範囲内に含まれる値の振幅、標準偏差、振動数、平均値、最大値および最小値の特徴を学習する。
【0038】
このように走行データと停止データとの特徴を学習させたSVMは、新たに測定された3軸方向の加速度が入力されると、各軸方向の加速度が有する特徴に基づいて、走行時に測定された加速度であるか、停止時に測定された加速度であるかを精度良く特定することができる。そこで、判定部23は、予め学習されたSVMに対し、検出部21が検出した各軸方向の加速度を入力し、かかる加速度の値を停止時に測定された加速度であるとSVMが判定した場合は、車両C10が停止中であると判定する。
【0039】
なお、端末装置100は、正確な判定を実現するため、端末装置100自身若しくは端末装置100と同種の端末装置によって測定された教師データにより学習を行ったSVMを利用してもよい。また、端末装置100は、ロバストな判定を実現するため、端末装置100と同種の端末装置を含む様々な種別の端末装置によって測定された教師データにより学習を行ったSVMを利用してもよい。
【0040】
また、SVMの教師データは、加速度を測定する装置の座標系(例えば、端末座標系)のままであってもよく、車両の座標系(例えば、車両座標系)に変換したデータであってもよい。なお、正確な判定を行うため、SVMの教師データは、端末装置100と同種の端末装置により、端末装置100が案内を行う際と同様の姿勢で測定された加速度であるのが望ましい。
【0041】
続いて、特定部22は、判定部23が停止状態であると判定した場合は(ステップS203:Yes)、加速度の平均値を用いて、重力方向を特定する(ステップS204)。例えば、
図1中(C)に示すように、端末装置100の加速度センサ13は、車両C10の加減速に応じた加速度だけではなく、端末装置100に対して働く重力加速度Gを常時検出することとなる。ここで、車両C10の動作を考慮すると、車両C10の加減速によって端末装置100が検出する加速度は、十分な期間内で見るとほぼ打ち消しあうと考えられる。
【0042】
このため、検出された加速度の平均値や向きは、重力加速度Gの値や向きとほぼ同じになると推定される。そこで、端末装置100は、測定した加速度の平均値を算出することで、端末座標系における重力加速度Gの方向(以下、「重力方向」と記載する。)を特定できる。また、端末座標系における重力方向は、車両座標系における重力方向、すなわち−X軸方向と一致するため、端末装置100の設置姿勢、ひいては、車両C10の移動方向を特定する指針となる。
【0043】
そこで、推定部24は、
図4に示すステップS205〜208に示す処理を実行することで、検出された加速度から、特定部22によって特定された重力方向に基づく移動方向を推定する。まず、推定部24は、推定した重力方向から、Y軸回りの回転角およびZ軸回りの回転角を特定する(ステップS205)。
【0044】
例えば、
図1中(D)に示すように、端末座標系と車両座標系との原点を重ね合わせ、かつY軸とy軸とが一致している場合は、Y軸方向を中心としたx軸とX軸との間の角βにより、端末装置100が画面奥方向にどれだけ傾いているかを特定することができる。また、Z軸とz軸が一致している場合は、Z軸方向を中心としてy軸とY軸との間の角度γにより、端末装置100が画面を手前側とした際に左右方向へどれだけ傾いているかを特定することができる。より一般的な特定方法については、後述する説明で数式を用いて説明する。
【0045】
ここで、重力加速度Gは、−X軸方向の力である。また、重力加速度Gの大きさは、端末座標系における各軸方向の加速度の二乗和の平方根で表すことができる。すると、推定部24は、検出された−x軸方向の加速度の大きさと重力加速度Gの大きさから、三角関数を用いて、角度βを算出できる。同様に、推定部24は、検出された+y軸方向の加速度の大きさと重力加速度Gの大きさから、三角関数を用いて、角度γを算出できる。この結果、推定部24は、特定した重力方向に対して垂直なYZ平面を特定することができる。なお、推定部24は、停止状態ではないと判定された場合は(ステップS203:No)、前回特定した重力方向に基づいて、YZ平面を特定すればよい。
【0046】
続いて、推定部24は、特定した重力方向に対して垂直な平面方向の加速度のばらつき、すなわち分散を算出し、分散が最も大きい方向を、車両C10の進行方向、すなわち−Z軸方向とする(ステップS206)。例えば、
図5は、車両が移動する際に生じる加速度の一例を説明する図である。例えば、車両座標系におけるYZ平面は、X軸方向に対して垂直な平面であり、車両C10の進行方向であるZ軸方向とZ軸とは垂直なY軸方向とに分割できる。ここで、車両C10の挙動を考えると、
図5中の点線の直線で示すように、車両C10の加減速によって生じる加速度のうち、停車状態から発車状態へと移行して直進する際の加速度が最も強い加速度であると推定される。また、
図5中の点線の曲線で示すように、Y軸方向に曲がったとしても、車両C10は前方(−Z軸方向)へと移動することとなる。
【0047】
この結果、端末装置100が測定した加速度を、YZ平面上に射影した場合、測定された加速度の広がりが最も大きい方向、すなわち、分散が最も大きい方向が車両C10の前後方向、すなわち−Z軸あるいは+Z軸方向であると予測される。この段階では、+Z軸方向と−Z軸方向のどちらが進行方向が不定であるが、かかる進行方向を特定する方法については、後述する説明で数式を用いて説明するものとし、以下の説明では、分散が最も大きい方向を−Z軸方向とするものとして説明する。
【0048】
例えば、推定部24は、
図1中(E)に示すように、重力方向に対して垂直なYZ平面上に対して測定された加速度を投影し、加速度のばらつきが最大となる方向Pを、車両C10の移動方向、すなわち、−Z軸方向とする。そして、
図1中の(F)に示すように、方向Pを−Z軸方向と推定した場合、X軸方向を中心としたZ軸とz軸との間の角度αにより、端末装置100が上下方向を中心としてどれだけ回転しているかを特定することができる。
【0049】
その後、端末装置100は、
図1中(G)に示すように、測定した重力方向を車両座標系のX軸方向へと変換する回転行列を用いて、測定した加速度の座標変換を行い、移動方向と速度とを算出する。より具体的には、
図4に示すように、推定部24は、角度α、β、γを特定すると、特定した角度α、β、γを用いて、端末座標系を車両座標系に変換する回転行列を算出する(ステップS207)。
【0050】
例えば、推定部24は、端末座標系のベクトルを、x軸を中心として角度−αだけ回転させ、y軸を中心として角度−βだけ回転させ、z軸を中心として角度−γだけ回転させる回転行列を生成する。そして、推定部24は、回転行列を用いて、検出された端末座標系の加速度を、車両座標系に変換し、変換後の加速度を用いて、車両C10の進行方向を推定する(ステップS208)。すなわち、推定部24は、端末座標系で測定された重力加速度の方向を、車両座標系におけるX軸方向と一致させる回転行列を用いて、検出された加速度を重力方向に基づく移動方向の加速度に変換し、変換後の加速度を分析することで、移動方向を推定する。
【0051】
例えば、推定部24は、X軸に対して垂直なYZ平面上の加速度、すなわち、Y軸方向とZ軸方向との加速度を用いて、車両C10の移動方向や移動方向の変化を推定する。より具体的には、推定部24は、+Z軸方向の加速度が測定された場合は、車両C10が加速していると判定し、−Z軸方向の加速度が検出された場合は、車両が減速していると判定する。また、推定部24は、進行方向である−Z軸方向とは垂直な+Y軸方向の加速度が測定された場合は、車両C10が右折したと判定し、−Y軸方向の加速度が測定された場合は、車両C10が左折したと判定する。
【0052】
続いて、算出部25は、変換後の加速度を用いて、車両C10の移動速度を算出する(ステップS209)。具体的には、算出部25は、車両C10の停車時における加速度のZ軸成分の平均値を原点(0)として、加速度のZ軸成分の積分値を、車両C10の移動速度とする。
【0053】
例えば、
図6は、実施形態に係る端末装置が車両の速度を算出する処理の一例を説明する図である。なお、
図6に示す例では、−Z軸方向への速度の値を縦軸にとり、時間を横軸にとることで、速度の時間経過をプロットした。例えば、時刻T1〜時刻T2の間、車両C10が前方に加速した場合は、+Z軸方向の加速度が検出されるため、
図6に示すように、算出部25は、速度が徐々に上昇すると判定する。また、時刻T2〜時刻T3の間、車両C10が減速した場合は、−Z軸方向の加速度が検出されるため、
図6中(A)に示す速度を最高速度として、車両C10の速度を徐々に減速させる。
【0054】
ここで、車両C10が時刻T3で停車したとしても、原点の設定や、端末装置100が検出可能な加速度の精度等によっては、
図6中(B)に示すように、実際に検出された加速度の積分値が時刻T3以降も正である場合がある。このような積分値を継続して利用した場合は、誤差が蓄積されるため、徐々に誤差が増大してしまう。
【0055】
そこで、算出部25は、判定部23によって車両C10が移動していないと判定された場合は、
図6中(C)に示すように、積分値を0に補正する。同様に、算出部25は、車両が時刻T4から加速した場合は、かかる加速の加速度を積分することで速度を算出する。そして、算出部25は、実際に測定された加速度の積分値が、
図6中(D)に示すように遷移したとしても、時刻T5で車両C10が停止したと判定された場合は、
図6中(E)に示すように、積分値を0に補正する。
【0056】
〔5.推定処理における数式の一例〕
次に、数式を用いて、推定部24が端末座標系を車両座標系へと変換する回転行列を算出する処理の一例を説明する。なお、推定部24が実行する処理は、以下の数式が示す処理に限定されるものではない。例えば、推定部24は、一次変換を表現した数式を用いて、端末座標系から車両座標系への座標変換を行ってもよい。
【0057】
例えば、端末座標系の各軸をxyz軸とし、車両座標系の各軸をXYZ軸とする。係る場合、車両座標系を端末座標系へと変換する処理は、以下の式(1)で表される。なお、式(1)では、x軸を中心とした回転角度をα、y軸を中心とした回転角度をβ、z軸を中心した回転角度をγとし、x軸を中心とした回転による座標変換を行う回転行列をR
x(α)、y軸を中心とした回転による座標変換を行う回転行列をR
y(β)、z軸を中心とした回転による座標変換を行う回転行列をR
z(γ)とした。
【0059】
また、回転行列R
x(α)、回転行列R
y(β)、および回転行列R
z(γ)(以下、総括して「各回転行列」と記載する場合がある。)は、以下の式(2)〜(4)で表すことができる。
【0063】
ここで、重力加速度は、−X軸方向の加速度であるから、車両座標系では、以下の式(5)で表すことができる。
【0065】
一方、端末座標系で検出された各軸方向の重力加速度をa
x、a
y、a
zと記載する。かかる場合、端末座標系の重力加速度a
x、a
y、a
zは、式(5)で示す重力加速度を各回転行列で変換した値となるので、以下の式(6)が成り立つ。
【0067】
この結果、式(6)におけるz軸方向の値より、式(7)を得る。
【0069】
また、重力加速度の大きさを考慮すると、式(8)が成り立つため、式(6)におけるx軸およびy軸方向の値から、式(9)を得る。この結果、端末装置100は、式(7)および式(9)から、y軸回りの回転角βを特定することができる。
【0072】
ここで、式(9)に示す値のうち、正の値を解として選択する。すると、式(6)におけるx軸およびy軸方向の値から、式(10)および式(11)を得る。この結果、端末装置100は、式(10)および式(11)からz軸まわりの回転角γを特定することができる。
【0075】
一方、端末座標系を車両座標系へと変換する処理は、式(1)に示す座標変換の逆変換であるため、以下の式(12)で表される。
【0077】
また、βとγの値は式(7)、(9)、(10)、(11)から算出できるので、端末座標系の加速度のサンプルa
x、a
y、a
zのうちy軸およびz軸のみを回転させ、車両座標系へと変換すると、式(13)となる。
【0079】
続いて、加速度のサンプルを、重力加速度Gと垂直な面上(すなわち、YZ平面上)に投影し、分散が最も大きい方向Pを求める処理について考える。y軸方向の加速度のサンプルをy、z軸方向の加速度のサンプルをzとし、YZ平面上に投影した加速度のサンプルの成分をy’、z’とすると、式(14)となる。
【0081】
ここで、式(14)からz’を抜き出すと、式(15)となる。
【0083】
ここで、z’の情報量が最大となる方向、すなわち、分散が最も大きい方向Pが車両C10の進行方向となる。そこで、z’の残差の二乗和を考える。YZ平面上に投影されたN個の加速度のZ軸成分をz
1’〜z
N’とすると、残差の二乗和は、以下の式(16)で表される。
【0085】
ここで、式(16)のうちオーバーラインを付したz’は、以下の式(17)を満たす値である。
【0087】
角度αによるLの偏微分が0である点を考えると、式(16)は、以下の式(18)に変形される。ここで、式(18)に示すS
y、S
z、S
yzは、以下の式(19)〜(21)に示す値である。
【0092】
ここで、式(18)をαの変数と座標の変数とに分けると、式(22)を導出することができる。
【0094】
ここで、αの正接関数(tanα)をtとし、式(22)の左辺をsと置くと、式(22)は、式(23)に示すようにtの二次関数で表すことができるので、tは、式(24)で表すことができる。すなわち、αの変数tを座標の変数sで表すことができる。
【0097】
ここで、αの正弦関数(sinα)および余弦関数(cosα)は、式(24)から、式(25)、式(26)となる。
【0100】
一方、式(24)の値を正の値および負の値に分けると、以下の式(27)、式(28)で表すことができ、tの解は、式(27)または式(28)のいずれかで表される。
【0103】
ここで、式(27)または(28)の一方は、分散が最少となる方向を示す解である可能性がある。そこで、Lの2階偏微分を考える。Lの2階偏微分は、式(29)で表すことができる。
【0105】
ここで、z’の情報量を最大化する目的を考慮すると、Lは凸関数となるため、式(30)を満たす条件を考える。
【0107】
すると、S
yzが0より大きい場合、式(30)を満たすにはtの値が0より小さくなければならないので、式(28)が解となる。一方、S
yzが0未満の時、式(30)を満たすにはtの値が0より大きくなければならないので、式(27)が解となる。そこで、端末装置100は、S
yzの値に応じて求められたtの値を式(25)、式(26)に代入し、回転角αの値を算出する。
【0108】
なお、S
yzの値が0である場合は、Lの2階偏微分が式(31)で表される。このため、S
z−S
yが0より大きい場合は、式(32)および式(33)が成り立ち、S
z−S
yが0より小さい場合は、式(34)、式(35)が成り立つ。そこで、端末装置100は、S
z−S
yの値に基づいて、式(32)および式(33)、または式(34)および式(35)を用いて、αの値を算出する。
【0114】
ここで、αの値が算出された場合、車両C10がZ軸のどちら方向を前方(進行方向、若しくは−Z軸方向)とするかが不明確である。そこで、端末装置100は、車両C10が動き出した際に測定された加速度の符号や、積分した速度の符号に基づいて、車両C10の前方方向を特定し、特定した方向を−Z軸方向とする。例えば、端末装置100は、車両C10が動き出した際に測定された加速度の方向とは逆の方向を−Z軸方向とする。また、端末装置100は、積分した速度の符号が正となるように、−Z軸方向を特定する。
【0115】
なお、上述した処理をまとめると、端末座標系の加速度を、y軸とz軸とを中心として回転させる座標変換は、以下の式(36)によって表すことができる。また、式(36)によって座標変換した加速度を、x軸を中心として回転させることで、車両座標系へと変換する座標変換は、以下の式(37)で表すことができる。このため、端末装置100は、上述した式(36)、式(37)を用いて、端末座標系を車両座標系へと変換する。
【0118】
〔6.推定速度の補正について〕
上述した端末装置100は、車両が停止したと判定された場合には、加速度の積分値を0に補正した。しかしながら、実施形態は、これに限定されるものではない。例えば、端末装置100は、車両C10が停止したと判定されてから、再度停止したと判定されるまでの間の積分値が0になるように、加速度の値もしくは加速度を積分して積分値にするための適宜な係数を補正してもよい。例えば、算出部25は、
図6に示す時刻T3から時刻T5までの間に測定された加速度の値の積分値が0になるように、原点の設定を修正してもよい。
【0119】
また、端末装置100は、GPSを利用して加速度の積分値を補正してもよい。例えば、端末装置100は、上述した推定処理を実行するとともに、衛星からの信号に基づいて端末装置100の位置を特定し、特定した位置の変動量から端末装置100の移動速度を算出する。そして、端末装置100は、推定された速度、すなわち、検出された加速度の積分値が算出した移動速度と同じ値になるように、検出された加速度の値を補正(例えば、原点とする値を補正)してもよい。
【0120】
〔7.進行方向の補正について〕
上述した端末装置100は、加速度の分散が大きい向きを車両C10の前方(−Z軸方向)とした。しかしながら、実施形態は、これに限定されるものではない。例えば、端末装置100は、GPSを利用して車両C10が直進しているか否かを判定し、車両C10が直進している場合には、かかる際に検出された加速度の方向をZ軸方向に設定してもよい。また、端末装置100は、GPSを利用して車両C10の現在地の推移を特定し、車両C10が直進しながら加速していると判定した場合は、検出されたYZ平面上の加速度の方向を、車両C10の後方(+Z軸方向)とするような回転行列式を算出し、かかる回転行列式を用いて、端末座標系から端末座標系へと加速度を変換してもよい。
【0121】
〔8.他の実施形態〕
なお、上記実施形態は例示に過ぎず、本発明は、以下に例示するものやそれ以外の他の実施態様も含むものである。例えば、本出願における機能構成、データ構造、フローチャートに示す処理の順序や内容などは例示に過ぎず、各要素の有無、その配置や処理実行などの順序、具体的内容などは適宜変更可能である。例えば、上述した案内処理や推定処理は、上記実施形態で例示したように端末装置100が実現する以外にも、スマートフォンのアプリなどが実現する端末における装置、方法やプログラムとして実現することもできる。
【0122】
また、端末装置100を構成する各処理部17〜20を、さらにそれぞれ独立した装置で実現する構成も一般的である。また、方向推定部20を構成する各部21〜25をそれぞれ独立した装置で実現する構成であってもよい。同様に、外部のプラットフォーム等をAPI(アプリケーション・プログラム・インタフェース)やネットワークコンピューティング(いわゆるクラウドなど)で呼び出すことで、上記実施形態で示した各手段を実現するなど、本発明の構成は柔軟に変更できる。さらに、本発明に関する手段などの各要素は、コンピュータの演算制御部に限らず物理的な電子回路など他の情報処理機構で実現してもよい。
【0123】
例えば、端末装置100は、端末装置100と通信可能な配信サーバとが協調して上述した案内処理を実行してもよい。例えば、配信サーバは、特定部22、推定部24、算出部25を有し、端末装置100が検出した加速度から、重力方向や、端末装置100の移動方向および移動速度を推定する。そして、配信サーバは、推定した移動方向や移動速度を端末装置100に配信し、利用者の案内を実行させてもよい。また、配信サーバは、端末装置100に代わって上述した推定処理を実行し、実行結果を端末装置100に送信することで、端末装置100に案内処理を実行させてもよい。
【0124】
また、配信サーバは、判定部23を有し、端末装置100が移動中であるか否かを判定してもよい。なお、配信サーバと協調して案内処理や推定処理を実行する端末装置が複数存在する場合、配信サーバは、端末装置ごとに異なるSVMを用いて、各端末装置が移動中であるか否かを判定してもよい。また、配信サーバは、各端末装置がGPSで取得した位置情報を収集し、収集した位置情報から各端末装置が移動中であるか否かを判定し、判定結果と、各端末装置から収集した加速度の値とを用いて、SVMの学習を実現してもよい。
【0125】
〔9.効果〕
上述したように、端末装置100は、所定の状態で検出された加速度の平均値を用いて、重力方向を特定する。そして、端末装置100は、特定した重力方向に基づく移動方向を、検出された加速度から推定する。このように、端末装置100は、複雑な処理を行わずとも、測定した加速度の平均値から、重量方向を特定し、特定した重力方向に基づく移動方向を、測定した加速度から推定する。この結果、端末装置100は、設置姿勢を容易に特定し、車両C10の進行方向を精度良く推定することができるという効果を奏する。
【0126】
また、端末装置100は、端末装置100が移動していない状態で検出された加速度の平均値を用いて、重力方向を特定する。このため、端末装置100は、複雑な処理を実行せずとも、重力方向を精度良く特定することができるので、設置姿勢を容易に特定し、車両C10の進行方向を精度良く推定することができる。
【0127】
また、端末装置100は、重力加速度を検出した端末座標系の方向を車両座標系の所定の軸方向に一致させる回転行列式を用いて、検出された加速度を重力加速度の方向に基づく移動方向、すなわち、重力加速度と垂直なYZ平面上の加速度に変換し、かかる変換後の加速度を用いて、移動方向を推定する。このため、端末装置100は、端末装置100の設置姿勢を固定せずとも、検出した加速度から車両C10が移動する方向を特定することができる。
【0128】
ここで、通常の態様においては、車両C10は、YZ平面上を移動することとなるため、移動によって生じる加速度もYZ平面上に生じる。そこで、端末装置100は、重力方向に対して垂直なYZ平面を基準とした移動方向を推定する。
【0129】
より具体的には、端末装置100は、検出された加速度のうち、重力方向に対して垂直なYZ平面上の加速度を用いて、移動方向を推定する。また、端末装置100は、重力方向に対して垂直なYZ平面上の方向であって、移動方向に対して垂直な方向に対する加速度に基づいて、端末装置100の移動方向の変化を検出する。このため、端末装置100は、車両C10の移動方向や移動速度を精度良く推定することができる。
【0130】
また、端末装置100は、重力方向に対して垂直なYZ平面上における加速度のばらつきを算出し、当該算出したばらつきが最大となる方向、すなわち分散が最大となる方向を移動方向である−Z軸方向とする。このため、端末装置100は、車両C10の移動方向を容易かつ精度良く特定することができる。
【0131】
また、端末装置100は、所定の時間が経過するまでの間に検出された複数の加速度の値の平均値、または、連続して検出された所定の数の加速度の値の平均値を算出し、算出された平均値を、検出された加速度の平均値の値とする。すなわち、端末装置100は、加速度センサ13が検出した加速度の値を、移動平均法を用いて平滑化し、ノイズを軽減する。このため、端末装置100は、移動方向や移動速度の推定精度を向上させることができる。
【0132】
また、端末装置100は、検出した加速度の値が有する特徴に基づいて、端末装置100、ひいては車両C10が移動しているか否かを判定し、端末装置100が移動していないと判定した際に検出された加速度の平均値を用いて、重力方向を特定する。このため、端末装置100は、重力方向を精度良く特定することができる結果、移動方向や移動速度の推定精度を向上させることができる。
【0133】
また、端末装置100は、端末装置100が移動している間、および、していない間に測定された加速度の値が有する特徴を学習したSVMを用いて、端末装置100が移動しているか否かを判定する。このため、端末装置100は、端末装置100が移動しているか否かを精度良く判定することができる。
【0134】
また、端末装置100は、推定された移動方向への移動速度を算出する。より具体的には、端末装置100は、推定された移動方向における加速度の積分値を、かかる方向への移動速度とする。このため、端末装置100は、車両C10の移動速度を推定することができる。
【0135】
また、端末装置100は、端末装置100が移動していない場合は、加速度の積分値を零に補正する。また、端末装置100は、移動を開始してから停止するまでの間に検出された加速度の積分値が零となるように、検出された加速度の値を補正する。また、端末装置100は、衛星からの信号に基づいて算出された端末装置100の移動速度を算出すると、加速度の積分値が算出された移動速度となるように、検出された加速度の値を補正する。これらの処理の結果、端末装置100は、移動速度の推定精度を向上させることができる。
【0136】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0137】
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、方向推定部は、方向推定手段や方向回路に読み替えることができる。