JP6516332B2 - 角速度センサを用いてユーザの前方方向を推定する携帯端末、プログラム及び方法 - Google Patents

角速度センサを用いてユーザの前方方向を推定する携帯端末、プログラム及び方法 Download PDF

Info

Publication number
JP6516332B2
JP6516332B2 JP2016066935A JP2016066935A JP6516332B2 JP 6516332 B2 JP6516332 B2 JP 6516332B2 JP 2016066935 A JP2016066935 A JP 2016066935A JP 2016066935 A JP2016066935 A JP 2016066935A JP 6516332 B2 JP6516332 B2 JP 6516332B2
Authority
JP
Japan
Prior art keywords
matrix
acc
angular velocity
err
attitude
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016066935A
Other languages
English (en)
Other versions
JP2017181218A (ja
Inventor
義浩 伊藤
義浩 伊藤
大輔 上坂
大輔 上坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2016066935A priority Critical patent/JP6516332B2/ja
Publication of JP2017181218A publication Critical patent/JP2017181218A/ja
Application granted granted Critical
Publication of JP6516332B2 publication Critical patent/JP6516332B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Navigation (AREA)

Description

本発明は、角速度センサを用いて、ユーザの動向を検出する技術に関する。
従来、モーションセンサ(加速度センサ、角速度センサ)を用いて、現在位置を推定する技術がある(例えば特許文献1参照)。この技術によれば、モーションセンサから生成された波形に基づく進行速度と、実際の進行速度との間の誤差を用いて、現在位置を推定する。具体的には、端末姿勢だけでなくジャイロオフセット(ドリフト)も含めて、カルマンフィルタを用いた歩行者測位を実現している。
図1は、従来技術における携帯端末の機能構成図である。
図1によれば、角速度センサによって推定された現在位置を、地図情報にマッピングすることによって補正する技術が表されている。この技術によれば、携帯端末は、進行可能な通路情報をマップデータとして記憶している。その上で、角速度センサの変化量及び積算値に基づいて算出された携帯端末の前方方向の向きから、コーナーを検出する。具体的には、一定時間以内に一定以上向きが変化した際に、コーナーとして検出する。検出されたコーナーは、地図情報に応じた進行方向をマッチングによって推定する。例えば十字通路があった場合、そのコーナーでの進行方向は、直進、90度、−90度の選択肢のいずれか1つに特定される。この推定結果に応じて、ユーザの前方方向が推定され、アプリケーションによってその方向に応じたサービスが提供される。
特開2014−167461号公報
「スマートフォン内蔵センサーを用いた複数フロアーデッドレコニング」マルチメディア、分散協調とモバイルシンポジウム2013論文集 2013, 723 - 735, 2013-07-03 「カルマンフィルタ」、[online]、[平成28年3月11日検索]、インターネット<URL:https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AB%E3%83%9E%E3%83%B3%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC> 「初心者の、初心者による、初心者のためのカルマンフィルタ」、[online]、[平成28年3月11日検索]、インターネット<URL:http://www1.accsnet.ne.jp/~aml00731/kalman.pdf> 「クォータニオン便利ノート」、[online]、[平成28年3月11日検索]、インターネット<URL:http://www.mss.co.jp/technology/report/pdf/18-07.pdf>
しかしながら、前述した従来技術によれば、「人は地図上の通路に沿って移動し、コーナーでのみ方向転換をする」という前提に基づいている。そのために、携帯端末を所持するユーザが、例えば十字通路で、人を避けるなどの想定外の動きをした際に、前方方向を誤判定してしまうという問題があった。角速度センサのみの位置推定によれば、一度でもコーナーを誤判定してしまうと、その後、本来の位置と大幅にずれた位置で測位され続けることとなる。
また、十字通路で進行方向を誤判定しなかったとしても、前方方向は常に地図情報に基づく方向のみを候補として出力する。そのために、例えば直進中に人を避けるといった動作までも検出することは難しい。
これに対し、本願の発明者らは、コーナーにおけるユーザの方向転換が、地図上の通路に沿うことを前提としていることに問題があるのではないか?と考えた。即ち、移動中のユーザにおけるコーナーでの方向転換が検出された際に、時間経過の中で緩やかな方向転換として判定すべきではないか?と考えた。特に、角速度センサにおけるコーナー判定を誤った場合であっても、前方方向の推定性能における大幅な劣化を防ぐことができないか?と考えた。
そこで、本発明は、角速度センサを用いて、地図上の通路に沿った移動中のユーザの方向転換を、時間経過に応じて推定する携帯端末、プログラム及び方法を提供することを目的とする。
本発明によれば、角速度センサ及び加速度センサを有し、ユーザの前方方向を推定する携帯端末であって、
正解方向を予め記憶したマップデータ記憶手段と、
角速度センサによって計測された角速度ベクトルに基づく端末姿勢の回転を表す行列q gyro と、時刻t-1における端末姿勢行列q t-1 とから、時刻tにおける角速度姿勢行列q t gyro を、カルマンフィルタを用いて算出する角速度姿勢行列算出手段と、
加速度センサによって計測された重力ベクトルg acc と、角速度姿勢行列q t gyro から推定された重力ベクトルh(q t gyro )との差分e t acc を用いて、角速度姿勢行列q t gyro から、加速度姿勢行列q t acc を、カルマンフィルタを用いて算出する加速度姿勢行列算出手段と、
角速度姿勢行列q t gyro 又は加速度姿勢行列q t acc から前方方向を推定する前方方向推定手段と、
正解方向と前方方向との差分となる方向誤差E t を算出する方向誤差算出手段と、
正解方向の姿勢行列q t correct と、加速度姿勢行列q t acc との間の残差e err t を算出し、加速度姿勢行列算出手段のカルマンフィルタによって算出された共分散行列P t acc を用いて、最適カルマンゲインK t err を算出し、加速度姿勢行列q t acc から、残差e err t 及び最適カルマンゲインK t err の積に基づく誤差姿勢行列q t err を算出し、共分散行列P t acc から、最適カルマンゲインK t err に基づく共分散行列P t err を算出し、更に、P t err を時刻tにおける最終的な端末姿勢行列の共分散行列P t として、時刻t+1における角速度姿勢行列算出手段へフィードバックする誤差姿勢行列算出手段と
を有することを特徴とする。
本発明の携帯端末における他の実施形態によれば、
前方方向推定手段によって推定された前方方向を、アプリケーションへ出力することも好ましい。
本発明の携帯端末における他の実施形態によれば、
誤差姿勢行列算出手段から出力された誤差姿勢行列qtから、前方方向を推定する付加的前方方向推定手段を更に有し、
付加的前方方向推定手段によって推定された前方方向を、アプリケーションへ出力することも好ましい。
本発明の携帯端末における他の実施形態によれば、
端末姿勢行列であるqt及びqt gyro,qt acc,qt errは、スカラー部及びベクトル部によって表現したクォータニオン(四元数)であることも好ましい。
本発明の携帯端末における他の実施形態によれば、
マップデータ記憶手段の正解方向は、当該携帯端末の位置から通路方向に応じた1つ以上の進行可能な方向であることも好ましい。
本発明の携帯端末における他の実施形態によれば、
加速度センサによって計測された加速度ベクトルaを端末座標系における重力方向とみなすことで、初期の角速度姿勢行列q0を算出し、当該角速度姿勢行列q0を角速度姿勢行列算出手段へ出力する初期姿勢行列算出手段を
更に有することも好ましい。
角速度センサ及び加速度センサを有し、ユーザの前方方向を推定する装置に搭載されたコンピュータを機能させるプログラムであって、
正解方向を予め記憶したマップデータ記憶手段と、
角速度センサによって計測された角速度ベクトルに基づく端末姿勢の回転を表す行列q gyro と、時刻t-1における端末姿勢行列q t-1 とから、時刻tにおける角速度姿勢行列q t gyro を、カルマンフィルタを用いて算出する角速度姿勢行列算出手段と、
加速度センサによって計測された重力ベクトルg acc と、角速度姿勢行列q t gyro から推定された重力ベクトルh(q t gyro )との差分e t acc を用いて、角速度姿勢行列q t gyro から、加速度姿勢行列q t acc を、カルマンフィルタを用いて算出する加速度姿勢行列算出手段と、
角速度姿勢行列q t gyro 又は加速度姿勢行列q t acc から前方方向を推定する前方方向推定手段と、
正解方向と前方方向との差分となる方向誤差E t を算出する方向誤差算出手段と、
正解方向の姿勢行列q t correct と、加速度姿勢行列q t acc との間の残差e err t を算出し、加速度姿勢行列算出手段のカルマンフィルタによって算出された共分散行列P t acc を用いて、最適カルマンゲインK t err を算出し、加速度姿勢行列q t acc から、残差e err t 及び最適カルマンゲインK t err の積に基づく誤差姿勢行列q t err を算出し、共分散行列P t acc から、最適カルマンゲインK t err に基づく共分散行列P t err を算出し、更に、P t err を時刻tにおける最終的な端末姿勢行列の共分散行列P t として、時刻t+1における角速度姿勢行列算出手段へフィードバックする誤差姿勢行列算出手段と
してコンピュータを機能させることを特徴とする。
本発明によれば、角速度センサ及び加速度センサを有する装置の前方方向推定方法であって、
装置は、正解方向を予め記憶したマップデータ記憶部を有し、
装置は、
角速度センサによって計測された角速度ベクトルに基づく端末姿勢の回転を表す行列q gyro と、時刻t-1における端末姿勢行列q t-1 とから、時刻tにおける角速度姿勢行列q t gyro を、カルマンフィルタを用いて算出すると共に、加速度センサによって計測された重力ベクトルg acc と、角速度姿勢行列q t gyro から推定された重力ベクトルh(q t gyro )との差分e t acc を用いて、角速度姿勢行列q t gyro から、加速度姿勢行列q t acc を、カルマンフィルタを用いて算出する第1のステップと、
角速度姿勢行列q t gyro 又は加速度姿勢行列q t acc から前方方向を推定する第2のステップと、
正解方向と前方方向との差分となる方向誤差E t を算出する第3のステップと、
正解方向の姿勢行列q t correct と、加速度姿勢行列q t acc との間の残差e err t を算出し、前記加速度姿勢行列q t acc を算出する際に用いたカルマンフィルタによって算出された共分散行列P t acc を用いて、最適カルマンゲインK t err を算出し、加速度姿勢行列q t acc から、残差e err t 及び最適カルマンゲインK t err の積に基づく誤差姿勢行列q t err を算出し、共分散行列P t acc から、最適カルマンゲインK t err に基づく共分散行列P t err を算出し、更に、P t err を時刻tにおける最終的な端末姿勢行列の共分散行列P t として、時刻t+1における第1のステップへフィードバックする第4のステップと
を実行することを特徴とする。
本発明の携帯端末、プログラム及び方法によれば、角速度センサを用いて、地図上の通路に沿った移動中のユーザの方向転換を、時間経過に応じて推定することができる。また、角速度センサにおけるコーナー判定を徐々に決定するために、前方方向の推定性能における大幅な劣化を防ぐことができる。
従来技術における携帯端末の機能構成図である。 本発明における携帯端末の第1の機能構成図である。 図2における各機能部の算出式を表す説明図である。 携帯端末に対する端末座標系と世界座標系とを表す説明図である。 本発明における前方方向の推定を表す説明図である。 本発明における携帯端末の第2の機能構成図である。
以下では、図面を用いて、本発明を実施するための形態について詳細に説明する。
図2は、本発明における携帯端末の第1の機能構成図である。
図3は、図2における各機能部の算出式を表す説明図である。
図2によれば、ユーザに所持される携帯端末1は、スマートフォンのような端末であって、ハードウェアとして、角速度センサ101と、加速度センサ102とを有する。また、携帯端末1は、ソフトウェアとしてユーザの前方方向を推定するものであって、初期姿勢算出部11と、角速度姿勢行列算出部12と、加速度姿勢行列算出部13と、前方方向推定部14と、方向誤差算出部15と、マップデータ記憶部150と、誤差姿勢行列算出部16と、付加的前方方向推定部17とを有する。これら機能構成部は、携帯端末に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。また、これら機能構成部の処理の流れは、装置の前方方向推定方法としても理解できる。
[角速度センサ101]
角速度センサ101は、基準軸に対する回転運動を検出するセンサであって、角度又は角速度を出力する。携帯端末に搭載可能な角速度センサは、一般に、MEMS(micro electro mechanical systems)で構成されており、物体の運動軸と回転軸との直交方向に働く力を計測することができる。
時刻tにおける角速度センサ101から計測される角速度ベクトルは、以下のように表される。
ωt=(ωx ωy ωz)
角速度ωについて、角速度センサのサンプリングレートfに対する時刻tにおける端末回転量Δθtは、以下のように表される。
Δθt=ωt/f
この回転は、端末座標系について、Δθt/|Δθt|を回転の軸として、|Δθt|の大きさだけ回転させたものである。
[加速度センサ102]
加速度センサ102は、端末姿勢を検出するべく、3次元(3軸)の加速度(単位時間当たりの速度の変化)を計測する。
時刻tにおける加速度センサ102から計測される加速度ベクトルは、以下のように表される。
t=(xt,yt,zt
[初期姿勢算出部11]
初期姿勢算出部11は、携帯端末の初期姿勢を決定する。初期姿勢としては、加速度センサ102によって計測された加速度ベクトルaを、端末座標系における重力方向gとみなす。端末姿勢は、重力方向gを鉛直方向下向きとして決定される。
具体的には、初期姿勢行列(クォータニオン)q0は、以下のように算出される。
g:重力ベクトル(=(0,0,−1))
a:加速度センサから得られた加速度ベクトル

na=a/|a| (|x|はベクトルxの大きさを表す)
h=g+na/|g+na|
0=(na・h,na×h) (・は内積、×は外積)
端末姿勢行列であるqt(以下で記述するqt gyro,qt acc,qt errも同様)は、スカラー部及びベクトル部によって表現したクォータニオン(四元数)である(例えば非特許文献4参照)。
そして、計測された初期の角速度姿勢行列q0を、角速度姿勢行列算出部12へ出力する。尚、初期姿勢が誤っていても、時間経過とともに正しい姿勢に修正される。そのために、初期姿勢算出部11は、必須ではなく、固定の初期姿勢を与えてもよい。
[角速度姿勢行列算出部12]
角速度姿勢行列算出部12は、角速度センサ101によって計測された角速度ベクトルに基づく端末姿勢の回転を表す行列qgyroと、時刻t-1における端末姿勢行列qt-1とから、時刻tにおける角速度姿勢行列qt gyroを算出する。
t gyro=qgyro×qt-1
×:クォータニオンの積の演算子
時刻t-1における端末姿勢行列qt-1は、誤差姿勢行列算出部16から入力される。
そして、算出された角速度姿勢行列qt gyroは、加速度姿勢行列算出部13へ出力される。
[加速度姿勢行列算出部13]
加速度姿勢行列算出部13は、加速度センサ102によって計測された重力ベクトルgaccと、角速度姿勢行列qt gyroから推定された重力ベクトルh(qt gyro)との差分et accを用いて、角速度姿勢行列qt gyroから、加速度姿勢行列qt accを算出する。
t acc=qt gyro+Kt acct acc
算出された加速度姿勢行列qt accは、前方方向推定部14及び誤差姿勢行列算出部16へ出力される。qt accは、補正前の端末姿勢に基づく加速度姿勢行列である。
[前方方向推定部14]
前方方向推定部14は、加速度姿勢行列qt accから前方方向を推定する。例えば、ユーザが携帯端末を把持して、そのディスプレイを見ながら歩行している場合を前提とするならば、単純に、世界座標系における端末のy軸方向を水平面に投影したものを前方方向とみなす。
前方方向推定部14によって推定された前方方向は、アプリケーションと方向誤差算出部15へ出力される。
図4は、携帯端末に対する端末座標系と世界座標系とを表す説明図である。
図4(a)によれば、端末座標系が表されている。端末座標系とは、端末のセンサから得られる座標系であって、携帯端末の右方向をx軸方向とし、上方向をy軸方向とし、表面方向をz軸とする。
図4(b)によれば、世界座標系が表されている。世界座標系とは、地表に対するユークリッド座標系で、水平面をxy平面、鉛直方向をz軸としたものである。
尚、水平面について、どの方向がx軸y軸になるかは不定であって、端末の初期姿勢によって決定される。特に、角速度センサと加速度センサのみを用いる場合、水平面上での絶対的な方向(方位角)を定めることはできない。但し、地磁気センサを用いた場合、絶対的な方向を決定することができる。
ここで、前方方向推定部14が推定する前方方向は、世界座標系平面に投影した端末座標系のy軸方向である。
[マップデータ記憶部150]
マップデータ記憶部150は、正解方向を予め記憶したものである。「正解方向」は、当該携帯端末の位置から通路方向に応じた1つ以上の進行可能な方向である。例えば、携帯端末が通行可能な地図情報である。正解方向の候補としては、進行可能な通路に応じて、離散化した方向(0度、90度、180度、270度)となる。
[方向誤差算出部15]
方向誤差算出部15は、前方方向推定部14から前方方向を入力し、マップデータ記憶部150から正解方向を入力する。そして、方向誤差算出部15は、前方方向に対して最も角度差が小さい正解方向を検索する。そして、本発明によれば、その角度差を打ち消す方向に進行方向をずらすこととなる。
方向誤差算出部15は、正解方向と前方方向との差分となる方向誤差Etを算出する。算出された方向誤差Etは、誤差姿勢行列算出部16へ出力される。
図4(b)によれば、世界座標系水平面に投影した携帯端末の端末座標系のy軸と、世界座標系の正解方向の間の誤差が、方向誤差Etとなる。例えば、推定された端末座標系のy軸(進行方向)が30度、正解方向の候補は90度単位であったとする。この場合、30度に一番近い離散化した方向は0度なので、0度を正解方向とみなし、+30度が方向誤差Etとなる。
尚、他の実施形態として、マップデータを用いて、推定された現在位置と最も近い通路の方向を正解方向として、方向誤差を計算することもできる。
[誤差姿勢行列算出部16]
誤差姿勢行列算出部16は、加速度姿勢行列算出部13から加速度姿勢行列qt accを入力し、方向誤差算出部15から方向誤差Etを入力する。
誤差姿勢行列算出部16は、加速度姿勢行列qt accに方向誤差Etで重み付けた誤差から誤差姿勢行列qt errを算出する。そして、当該誤差姿勢行列qt errを時刻tにおける最終的な端末姿勢行列qtとして、時刻t+1における角速度姿勢行列算出部12へフィードバックして入力する。
[付加的前方方向推定部17]
付加的前方方向推定部17は、誤差姿勢行列算出部16から出力された誤差姿勢行列qtから、前方方向を推定する。付加的前方方向推定部17によって推定された前方方向を、アプリケーションへ出力する。
前方方向推定部14から出力される前方方向と異なって、付加的前方方向推定部17は、姿勢更新後の姿勢(誤差姿勢行列算出部16の誤差姿勢行列qt)に基づいて前方方向を推定する。そのために、現在のタイミングで補正された姿勢に基づく、正確な前方方向を出力することができる。
<<誤差姿勢行列を算出する実施形態>>
本発明によれば、前述した角速度姿勢行列算出部12と、加速度姿勢行列算出部13と、誤差姿勢行列算出部16とは、以下のような4つの実施形態で実現することができる。
<第1の実施形態:カルマンフィルタを用いた第1の誤差姿勢行列>
<第2の実施形態:カルマンフィルタを用いた第2の誤差姿勢行列>
<第3の実施形態:加速度姿勢行列の単位補正角度に基づく誤差姿勢行列>
<第4の実施形態:角速度姿勢行列の単位補正角度に基づく誤差姿勢行列>
<第1の実施形態:カルマンフィルタを用いた第1の誤差姿勢行列>
「カルマンフィルタ」とは、離散的な誤差のある観測から、時々刻々と時間変化する量を推定するために用いられる連続時間線形動的システムである(例えば非特許文献2、3参照)。これは、隠れマルコフモデルに類似したものであって、ガウス分布に従う雑音によって未来の状態変数を統計的に出力することができる。
[角速度姿勢行列算出部12]
角速度姿勢行列算出部12は、角速度センサ101によって絶対座標系で表した回転をΔθt Gとすると、時刻t-1における端末姿勢qt-1を用いて、以下のように表すことができる。
Δθt G=qt-1Δθt
q:回転を行列で表したクォータニオン(四元数)
絶対座標系について、Δθt G/|Δθt G|を回転の軸として、|Δθt G|だけ回転させたものを、以下のように表す。
θt=|Δθt G|
t=Δθt G/|Δθt G|
クォータニオンによれば、3次元の回転軸ベクトルn(大きさは1)回りにθだけ回転させる場合、4次元ベクトルを用いて、角速度センサ101による回転量qgyroを、以下のように表すことができる。
gyro=(cos(θt/2) ntsin(θt/2))
角速度センサから計算した時刻tにおける端末姿勢である角速度姿勢行列qt gyroは、時刻t-1における端末姿勢qt-1を、qgyroだけ回転させたものとなる。
t gyro=qgyro×qt-1
×:クォータニオンの積の演算子
そして、角速度姿勢行列算出部12は、カルマンフィルタの「予測ステップ」を実行する。
t gyro=FPt-1T+Gkkk T
t=∂/∂q(qgyro・q)|qt-1
尚、カルマンフィルタによれば、時変な行列Fk、Gk、Hk、Qk、Rkによって特徴付けられる線形の状態方程式として表される。
角速度姿勢行列算出部12は、角速度姿勢行列qt gyroとカルマンフィルタの共分散行列Pt gyroとを、加速度姿勢行列算出部13へ出力する。
[加速度姿勢行列算出部13]
加速度姿勢行列算出部13は、カルマンフィルタの「更新ステップ」を実行する。
acc:加速度ベクトル(=重力ベクトル)
h(q):端末姿勢qから推定される重力ベクトル
t acc=gacc−h(qt gyro
t acc=∂/∂q(h(q))|qt gyro
t acc=Ht acct gyrot accT+Rt acc
t acc=Pt gyrot accTacc-1
t acc=qt gyro+Kt acct acc
t acc=(I−Kt acct acc)Pt gyro
加速度姿勢行列算出部13は、加速度姿勢行列qt accとカルマンフィルタの共分散行列Pt accとを、前方方向推定部14及び誤差姿勢行列算出部16へ出力する。
[誤差姿勢行列算出部16]
誤差姿勢行列算出部16は、以下のように端末姿勢を更新する。
方向誤差Etが0となる端末姿勢qt coreectは、誤差による補正前の端末姿勢qt accを鉛直軸回りに−Etだけ回転させたものである。鉛直軸回りに−Etの回転は、以下のクォータニオンを用いて表される。
t v=(cos(−Et/2) 0 0 sin(−Et/2))
これを用いることで、方向誤差Etが0となる端末姿勢qt coreectは下記のように計算できる。
t coreect=qt v×qt acc
(qt accを鉛直方向回りに誤差と同じ大きさで逆方向に回転させた姿勢)
t coreect:観測値(方向誤差が0となる端末姿勢)
t acc:内部状態の推定値
カルマンフィルタの更新ステップに従って更新することにより、次状態を計算できる。
正解方向の姿勢行列qt correctと、加速度姿勢行列qt accとの間の(観測)残差eerr tを、以下のように算出する。
t err=qt coreect−qt acc
また、観測残差の共分散は、以下のように計算できる。
t err=Pt acc+Rt err
t err:カルマンフィルタに外部から与えるパラメータ(固定値でもよい)
t errのパラメータの値を変えることで、1度のステップでの補正量を調整することが可能である。
加速度姿勢行列算出部13のカルマンフィルタによって算出された共分散行列Pt accを用いて、最適カルマンゲインKt errを、以下のように算出する(M-1は、行列Mの逆行列を表す)。
t err=Pt acct err-1
加速度姿勢行列qt accから、残差eerr t及び最適カルマンゲインKt errの積に基づく誤差姿勢行列qt err(更新後の姿勢の推定値)を、以下のように算出する。
t err=qt acc+KT errt err
共分散行列Pt accから、最適カルマンゲインKt errに基づく共分散行列Ptを、以下のように算出する。
t err=(I−Kt err)Pt acc
そして、誤差姿勢行列算出部16は、時刻tにおける誤差姿勢行列qt err及び共分散行列Pt errを、時刻tにおける最終的な姿勢行列qt及び共分散Ptとして時刻t+1における角速度姿勢行列算出部12へフィードバックする。
<第2の実施形態:カルマンフィルタを用いた第2の誤差姿勢行列>
誤差姿勢行列算出部16は、以下のように端末姿勢を更新する。
クォータニオンq=(w,x,y,z)から、このクォータニオンによる回転と同等の回転を表す行列への変換を表す関数を、以下のように予め定義する。
Figure 0006516332
方向誤差Etが0となる絶対座標系における端末のY軸方向yt coreectは、誤差による補正前の端末のY軸方向yt accを鉛直軸回りに、−Etだけ回転させたものである。
誤差による補正前の端末のY軸方向yt accは、誤差による補正前の端末姿勢qt accを用いて計算することができる。具体的には、端末座標系でのy軸方向を表すベクトル、即ち、(0,1,0)をqt accを用いて回転させればよい。即ち、以下のように計算することができる(MTは、行列Mの転置行列を表す)。
t acc=R(qt acc)(0,1,0)T
鉛直軸回りに−Etの回転は、以下のクォータニオンを用いて表される。
t v=(cos(−Et/2) 0 0 sin(−Et/2))
これを用いて、方向誤差Etが0となる端末のY軸方向yt coreectは、以下のように算出することができる。
t coreect=R(qt v)yt acc
(yt accを鉛直方向回りに誤差と同じ大きさで逆方向に回転させたベクトル)
t coreect:観測値(方向誤差が0となる端末のY軸方向)
t acc:内部状態から推定値した端末のY軸方向
カルマンフィルタの更新ステップに従って更新することにより、次状態を計算することができる。
正解方向の姿勢行列yt correctと、加速度姿勢行列yt accとの間の(観測)残差eerr tを、以下のように算出する。
t err=yt coreect−R(qt acc)(0,1,0)T
尚、R(qt acc)(0,1,0)T=yt accである。
また、観測残差の共分散は、以下のように算出できる。
t err=HPt accT+Rt err
t err:カルマンフィルタに外部から与えるパラメータ(固定値でもよい)
H:R(q)(0,1,0)Tのヤコビ行列。
即ち、H=∂/∂q(R(q)(0,1,0)T)|qt acc
t errのパラメータの値を変えることで、1度のステップでの補正量を調整することが可能である。
加速度姿勢行列算出部13のカルマンフィルタによって算出された共分散行列Pt accを用いて、最適カルマンゲインKt errを、以下のように算出する(M-1は、行列Mの逆行列を表す)。
t err=Pt acct err-1
加速度姿勢行列qt accから、残差eerr t及び最適カルマンゲインKt errの積に基づく誤差姿勢行列qt(更新後の姿勢の推定値)を、以下のように算出する。
t err=qt acc+KT errt err
共分散行列Pt accから、最適カルマンゲインKt errに基づく共分散行列Ptを、以下のように算出する。
t err=(I−Kt err)Pt acc
そして、誤差姿勢行列算出部16は、時刻tにおける角速度姿勢行列qt err及び共分散行列Pt errを、時刻tにおける最終的な姿勢行列qt及び共分散Ptとして時刻t+1における角速度姿勢行列算出部12へフィードバックする。
<第3の実施形態:加速度姿勢行列の単位補正角度に基づく誤差姿勢行列>
誤差姿勢行列算出部16は、所定の単位補正割合rに基づいて、誤差姿勢行列qt errを算出する。また、qt errを時刻tにおける最終的な姿勢行列qtとする。
(1)方向誤差Etに対する所定の単位補正割合rの単位補正角度rEtを算出する。
(2)加速度姿勢行列qt accに、単位補正角度rEtだけ鉛直軸回りへの回転を表す姿勢行列を積算して、誤差姿勢行列qt errを算出する。
単位補正割合r(0<r≦1)は、一度に補正する角度における、誤差に対する割合を表す。1回のステップで補正する角度は、rEtとする。
補正後の端末姿勢qt errは、誤差による補正前の端末姿勢qt accを、鉛直軸回りに、−rEtだけ回転させたものである。鉛直軸回りに−rEtの回転は、以下のクォータニオンを用いて表される。
t v=(cos(−rEt/2) 0 0 sin(−rEt/2))
t err=qt v×qt acc
<第4の実施形態:角速度姿勢行列の単位補正角度に基づく誤差姿勢行列>
図5は、本発明における携帯端末の第2の機能構成図である。
図5(第3の実施形態)によれば、図2(第1の実施形態、第2の実施形態)と比較して、加速度センサ102を必要とせず、角速度センサ101のみで、前方方向を推定することができる。そのため、図5の機能構成図は、図2の機能構成図の上位概念的なものとなる。
誤差姿勢行列算出部16は、所定の単位補正割合rに基づいて、誤差姿勢行列qt errを算出する。また、qt errを時刻tにおける最終的な姿勢行列qtとする。
(1)方向誤差Etに対する所定の単位補正割合rの単位補正角度rEtを算出する。
(2)角速度姿勢行列qt gyroに、単位補正角度rEtだけ鉛直軸回りへの回転を表す姿勢行列を積算して、誤差姿勢行列qt errを算出する。
尚、図5によれば、前方方向推定部14は、角速度姿勢行列qt accから前方方向を推定する。
図6は、本発明における前方方向の推定を表す説明図である。
図6(a)によれば、従来技術における前方方向の推定を表す(例えば非特許文献1参照)。例えばマップデータに基づく正解方向候補が右方向であった場合、携帯端末の前方方向が右向きとなった場合、コーナーで右折したと判定される。即ち、コーナーが検出されたら、正解方向候補の向きに合わせるという離散的な方向判定となる。
これに対し、図6(b)によれば、本発明における前方方向の推定を表す。例えばマップデータに基づく正解方向候補が右方向であった場合、携帯端末の前方方向が右向きとなった場合であっても、正解方向候補に徐々に近づけている。そのために、直ぐに右折したとまでは判定しない。そのために、正解方向候補以外の方向への方向転換にも、ある程度追従することができる。特に、図6のように、本発明によれば、障害物を避けるなどの歩行時のノイズの影響によって、誤って判定された正解方向に測位されてしまうことを防ぐことができる。
以上、詳細に説明したように、本発明の携帯端末、プログラム及び方法によれば、角速度センサを用いて、地図上の通路に沿った移動中のユーザの方向転換を、時間経過に応じて推定することができる。また、角速度センサにおけるコーナー判定を徐々に決定するために、前方方向の推定性能における大幅な劣化を防ぐことができる。
前述した本発明における種々の実施形態によれば、当業者は、本発明の技術思想及び見地の範囲における種々の変更、修正及び省略を容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
1 携帯端末
101 角速度センサ
102 加速度センサ
11 初期姿勢算出部
12 角速度姿勢行列算出部
13 加速度姿勢行列算出部
14 前方方向推定部
15 方向誤差算出部
150 マップデータ記憶部
16 誤差姿勢行列算出部
17 付加的前方方向推定部

Claims (8)

  1. 角速度センサ及び加速度センサを有し、ユーザの前方方向を推定する携帯端末であって、
    正解方向を予め記憶したマップデータ記憶手段と、
    前記角速度センサによって計測された角速度ベクトルに基づく端末姿勢の回転を表す行列q gyro と、時刻t-1における端末姿勢行列q t-1 とから、時刻tにおける角速度姿勢行列q t gyro を、カルマンフィルタを用いて算出する角速度姿勢行列算出手段と、
    前記加速度センサによって計測された重力ベクトルg acc と、角速度姿勢行列q t gyro から推定された重力ベクトルh(q t gyro )との差分e t acc を用いて、角速度姿勢行列q t gyro から、加速度姿勢行列q t acc を、カルマンフィルタを用いて算出する加速度姿勢行列算出手段と、
    前記角速度姿勢行列q t gyro 又は前記加速度姿勢行列q t acc から前方方向を推定する前方方向推定手段と、
    前記正解方向と前記前方方向との差分となる方向誤差E t を算出する方向誤差算出手段と、
    前記正解方向の姿勢行列q t correct と、前記加速度姿勢行列q t acc との間の残差e err t を算出し、前記加速度姿勢行列算出手段のカルマンフィルタによって算出された共分散行列P t acc を用いて、最適カルマンゲインK t err を算出し、前記加速度姿勢行列q t acc から、前記残差e err t 及び最適カルマンゲインK t err の積に基づく誤差姿勢行列q t err を算出し、前記共分散行列P t acc から、最適カルマンゲインK t err に基づく共分散行列P t err を算出し、更に、P t err を時刻tにおける最終的な端末姿勢行列の共分散行列P t として、時刻t+1における前記角速度姿勢行列算出手段へフィードバックする誤差姿勢行列算出手段と
    を有することを特徴とする携帯端末。
  2. 前記前方方向推定手段によって推定された前記前方方向を、アプリケーションへ出力する
    ことを特徴とする請求項1に記載の携帯端末。
  3. 前記誤差姿勢行列算出手段から出力された前記誤差姿勢行列qtから、前方方向を推定する付加的前方方向推定手段を更に有し、
    前記付加的前方方向推定手段によって推定された前記前方方向を、アプリケーションへ出力する
    ことを特徴とする請求項1に記載の携帯端末。
  4. 端末姿勢行列であるqt及びqt gyro,qt acc,qt errは、スカラー部及びベクトル部によって表現したクォータニオン(四元数)である
    ことを特徴とする請求項1からのいずれか1項に記載の携帯端末。
  5. 前記マップデータ記憶手段の前記正解方向は、当該携帯端末の位置から通路方向に応じた1つ以上の進行可能な方向である
    ことを特徴とする請求項1からのいずれか1項に記載の携帯端末。
  6. 加速度センサによって計測された加速度ベクトルaを端末座標系における重力方向とみなすことで、初期の角速度姿勢行列q0を算出し、当該角速度姿勢行列q0を前記角速度姿勢行列算出手段へ出力する初期姿勢行列算出手段を
    更に有することを特徴とする請求項1からのいずれか1項に記載の携帯端末。
  7. 角速度センサ及び加速度センサを有し、ユーザの前方方向を推定する装置に搭載されたコンピュータを機能させるプログラムであって、
    正解方向を予め記憶したマップデータ記憶手段と、
    前記角速度センサによって計測された角速度ベクトルに基づく端末姿勢の回転を表す行列q gyro と、時刻t-1における端末姿勢行列q t-1 とから、時刻tにおける角速度姿勢行列q t gyro を、カルマンフィルタを用いて算出する角速度姿勢行列算出手段と、
    前記加速度センサによって計測された重力ベクトルg acc と、角速度姿勢行列q t gyro から推定された重力ベクトルh(q t gyro )との差分e t acc を用いて、角速度姿勢行列q t gyro から、加速度姿勢行列q t acc を、カルマンフィルタを用いて算出する加速度姿勢行列算出手段と、
    前記角速度姿勢行列q t gyro 又は前記加速度姿勢行列q t acc から前方方向を推定する前方方向推定手段と、
    前記正解方向と前記前方方向との差分となる方向誤差E t を算出する方向誤差算出手段と、
    前記正解方向の姿勢行列q t correct と、前記加速度姿勢行列q t acc との間の残差e err t を算出し、前記加速度姿勢行列算出手段のカルマンフィルタによって算出された共分散行列P t acc を用いて、最適カルマンゲインK t err を算出し、前記加速度姿勢行列q t acc から、前記残差e err t 及び最適カルマンゲインK t err の積に基づく誤差姿勢行列q t err を算出し、前記共分散行列P t acc から、最適カルマンゲインK t err に基づく共分散行列P t err を算出し、更に、P t err を時刻tにおける最終的な端末姿勢行列の共分散行列P t として、時刻t+1における前記角速度姿勢行列算出手段へフィードバックする誤差姿勢行列算出手段と
    してコンピュータを機能させることを特徴とするプログラム。
  8. 角速度センサ及び加速度センサを有する装置の前方方向推定方法であって、
    前記装置は、正解方向を予め記憶したマップデータ記憶部を有し、
    前記装置は、
    前記角速度センサによって計測された角速度ベクトルに基づく端末姿勢の回転を表す行列q gyro と、時刻t-1における端末姿勢行列q t-1 とから、時刻tにおける角速度姿勢行列q t gyro を、カルマンフィルタを用いて算出すると共に、前記加速度センサによって計測された重力ベクトルg acc と、角速度姿勢行列q t gyro から推定された重力ベクトルh(q t gyro )との差分e t acc を用いて、角速度姿勢行列q t gyro から、加速度姿勢行列q t acc を、カルマンフィルタを用いて算出する第1のステップと、
    前記角速度姿勢行列q t gyro 又は前記加速度姿勢行列q t acc から前方方向を推定する第2のステップと、
    前記正解方向と前記前方方向との差分となる方向誤差E t を算出する第3のステップと、
    前記正解方向の姿勢行列q t correct と、前記加速度姿勢行列q t acc との間の残差e err t を算出し、前記加速度姿勢行列q t acc を算出する際に用いたカルマンフィルタによって算出された共分散行列P t acc を用いて、最適カルマンゲインK t err を算出し、前記加速度姿勢行列q t acc から、前記残差e err t 及び最適カルマンゲインK t err の積に基づく誤差姿勢行列q t err を算出し、前記共分散行列P t acc から、最適カルマンゲインK t err に基づく共分散行列P t err を算出し、更に、P t err を時刻tにおける最終的な端末姿勢行列の共分散行列P t として、時刻t+1における第1のステップへフィードバックする第4のステップと
    を実行することを特徴とする装置の前方方向推定方法。
JP2016066935A 2016-03-29 2016-03-29 角速度センサを用いてユーザの前方方向を推定する携帯端末、プログラム及び方法 Active JP6516332B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016066935A JP6516332B2 (ja) 2016-03-29 2016-03-29 角速度センサを用いてユーザの前方方向を推定する携帯端末、プログラム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016066935A JP6516332B2 (ja) 2016-03-29 2016-03-29 角速度センサを用いてユーザの前方方向を推定する携帯端末、プログラム及び方法

Publications (2)

Publication Number Publication Date
JP2017181218A JP2017181218A (ja) 2017-10-05
JP6516332B2 true JP6516332B2 (ja) 2019-05-22

Family

ID=60004353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016066935A Active JP6516332B2 (ja) 2016-03-29 2016-03-29 角速度センサを用いてユーザの前方方向を推定する携帯端末、プログラム及び方法

Country Status (1)

Country Link
JP (1) JP6516332B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110855797A (zh) * 2019-11-28 2020-02-28 河北农业大学 一种基于动作识别的绵羊行为监测系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015152559A (ja) * 2014-02-19 2015-08-24 株式会社リコー 慣性装置、制御方法及びプログラム
JP2015179002A (ja) * 2014-03-19 2015-10-08 セイコーエプソン株式会社 姿勢推定方法、姿勢推定装置及びプログラム

Also Published As

Publication number Publication date
JP2017181218A (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
US10037028B2 (en) Systems, devices, and methods for on-board sensing and control of micro aerial vehicles
Li et al. Effective adaptive Kalman filter for MEMS-IMU/magnetometers integrated attitude and heading reference systems
JP6285628B2 (ja) 移動端末及び位置推定方法並びにコンピュータ読出可能記録媒体
JP5061264B1 (ja) 小型姿勢センサ
Stančić et al. The integration of strap-down INS and GPS based on adaptive error damping
JP2006126148A (ja) 方位姿勢検出装置
Allotta et al. Single axis FOG aided attitude estimation algorithm for mobile robots
JP2012173190A (ja) 測位システム、測位方法
CN102654404A (zh) 一种提高航姿参考系统解算精度和系统抗干扰能力的方法
JP2004239643A (ja) ハイブリッド航法装置
CN106813679B (zh) 运动物体的姿态估计的方法及装置
JP7025215B2 (ja) 測位システム及び測位方法
JP2012193965A (ja) 位置標定装置、位置標定装置の位置標定方法および位置標定プログラム
CN108627154A (zh) 极地区域操作姿态与航向参考系统
Troni et al. Preliminary experimental evaluation of a Doppler-aided attitude estimator for improved Doppler navigation of underwater vehicles
JP5511088B2 (ja) 自律測位に用いる重力ベクトルを補正する携帯装置、プログラム及び方法
EP3227634B1 (en) Method and system for estimating relative angle between headings
JP6516332B2 (ja) 角速度センサを用いてユーザの前方方向を推定する携帯端末、プログラム及び方法
JP2013122384A (ja) カルマンフィルタ、及び、状態推定装置
Allotta et al. Underwater vehicles attitude estimation in presence of magnetic disturbances
Le et al. A heading observer for ROVs under roll and pitch oscillations and acceleration disturbances using low-cost sensors
Munguia et al. An attitude and heading reference system (AHRS) based in a dual filter
KR101340158B1 (ko) 고정 표적을 이용한 무인항공기의 표적 위치 보정 방법 및 컴퓨터 판독 가능한 기록매체
JP7241732B2 (ja) 磁気センサにより測定される磁場からの方位の決定
Lee et al. 3-Dimensional pose sensor algorithm for humanoid robot

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190412

R150 Certificate of patent or registration of utility model

Ref document number: 6516332

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150