JP6705972B2 - 姿勢推定装置、姿勢推定方法、制御プログラム、および記録媒体 - Google Patents

姿勢推定装置、姿勢推定方法、制御プログラム、および記録媒体 Download PDF

Info

Publication number
JP6705972B2
JP6705972B2 JP2016101925A JP2016101925A JP6705972B2 JP 6705972 B2 JP6705972 B2 JP 6705972B2 JP 2016101925 A JP2016101925 A JP 2016101925A JP 2016101925 A JP2016101925 A JP 2016101925A JP 6705972 B2 JP6705972 B2 JP 6705972B2
Authority
JP
Japan
Prior art keywords
vector
posture
horizontal direction
sensor
estimation unit
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
JP2016101925A
Other languages
English (en)
Other versions
JP2017207456A (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.)
NSD CO., LTD.
SITESENSING, INC.
Original Assignee
NSD CO., LTD.
SITESENSING, INC.
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 NSD CO., LTD., SITESENSING, INC. filed Critical NSD CO., LTD.
Priority to JP2016101925A priority Critical patent/JP6705972B2/ja
Priority to US15/169,875 priority patent/US9939273B2/en
Publication of JP2017207456A publication Critical patent/JP2017207456A/ja
Application granted granted Critical
Publication of JP6705972B2 publication Critical patent/JP6705972B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/04Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by terrestrial means
    • G01C21/08Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by terrestrial means involving use of the magnetic field of the earth
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/14Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by recording the course traversed by the object
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1654Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with electromagnetic compass

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Life Sciences & Earth Sciences (AREA)
  • Geology (AREA)
  • Navigation (AREA)

Description

本発明は、移動体に保持された加速度センサ、角速度センサ、および磁気センサの出力を用いて移動体の姿勢をトラッキングする装置等に関する。
人の腰部やつま先などに装着された自蔵センサ(加速度・ジャイロ・磁気・気圧センサなど)を用いて、歩行動作に特化して、その位置・方位を計測する技術は、歩行者デッドレコニング(PDR:Pedestrian Dead Reckoning)と呼ばれている。下記非特許文献1に記載されているように、このような技術については従来から研究が進められている。そして、このような技術においては、カルマンフィルタを用いて移動体の状態ベクトルを逐次更新することにより、リアルタイムのトラッキングが実現されている。
興梠正克、大隈隆史、蔵田武志、「歩行者ナビのための自蔵センサモジュールを用いた屋内測位システムとその評価」、シンポジウム「モバイル 08」予稿集、pp.151-156,2008 Paul Zarchan, Howard Musoff, "Fundamentals of Kalman Filtering: A Practical Approach - Second Edition", AIAA, 2004.
しかしながら、上述のような従来技術には、カルマンフィルタによる演算のコストが大きいという問題がある。すなわち、上記非特許文献1の技術では、重力方向と水平基準方向のトラッキングをカルマンフィルタにより実現している。そして、このカルマンフィルタの状態ベクトルは、真北方向成分(3軸)、鉛直方向成分(3軸)、角速度成分(3軸)の計9つの成分を持つ9×1行列である。このため、状態ベクトルの更新には、9×9の行列の乗算と逆行列の演算が必要となり、この演算のコストは大きいものであった。なお、これは、歩行者デッドレコニングに限られず、任意の移動体の姿勢のトラッキング時に共通して生じる問題である。
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、姿勢の推定精度を低下させることなく状態ベクトルの更新に係る演算コストを低減することのできる姿勢推定装置等を実現することにある。
上記の課題を解決するために、本発明の姿勢推定装置は、加速度センサ、角速度センサ、および磁気センサの出力を用いてセンサ座標系における移動体の状態ベクトルを逐次更新し、該状態ベクトルを用いて上記移動体の姿勢をトラッキングする姿勢推定装置であって、上記角速度センサの出力を用いて上記状態ベクトルの成分である重力方向ベクトルの予測値を算出し、該予測値を上記加速度センサの出力を観測として用いて更新する重力方向推定部と、上記角速度センサの出力を用いて上記状態ベクトルの成分である水平方向ベクトルの予測値を算出し、該予測値を上記磁気センサの出力を観測として用いて更新する水平方向推定部と、更新後の上記重力方向ベクトルと更新後の上記水平方向ベクトルとを用いて上記移動体の姿勢情報を生成する姿勢推定部と、を備えている。
上記の構成によれば、重力方向ベクトルと水平方向ベクトルとをそれぞれ個別に算出および更新し、更新後の重力方向ベクトルと更新後の水平方向ベクトルとを用いて移動体の姿勢情報を生成する。これにより、重力方向ベクトルと水平方向ベクトルとを含む状態ベクトルを一括で更新する場合と同等の推定精度を維持しつつ、該場合と比べて更新に係る演算コストを低減することができる。
また、上記水平方向推定部は、上記磁気センサの出力が上記水平方向ベクトルの更新に用いるのに適切な値となっているか否かを検査し、適切な値となっていない場合には該磁気センサの出力を観測として用いた更新を行わなくてもよい。
上記の構成によれば、検査を行った結果、磁気センサの出力が水平方向ベクトルの更新に用いるのに適切な値となっていない場合には、気センサの出力を観測として用いた更新を行わない。よって、不適切な値の磁気センサの出力を用いた更新が行われて、姿勢の推定精度が低下することを防ぐことができる。
また、上記水平方向推定部は、上記重力方向推定部が更新した上記重力方向ベクトルを用いて上記検査を行ってもよい。
上記の構成によれば、重力方向推定部が更新した重力方向ベクトルを用いて上記検査を行う。この重力方向ベクトルは、角速度センサの出力を用いた予測により算出され、加速度センサの出力を観測として用いて更新されたものであるから、重力方向を正しく示している可能性が高い。また、磁気センサの出力である磁気ベクトルが外乱や歪みを含んでいなければ、該磁気ベクトルと重力方向との間には所定の関係が成り立つ。よって、該関係が成り立つ場合には磁気センサの出力が適切な値であり、成り立たない場合には、不適切な値であると言える。したがって、上記の構成によれば、重力方向推定部が更新した重力方向ベクトルを利用して、高精度な検査を行うことが可能になる。
また、上記水平方向推定部は、更新後の上記水平方向ベクトルを、更新後の上記重力方向ベクトルと直交するように補正してもよい。
ここで、水平方向ベクトルと重力方向ベクトルは、何れも同じセンサ座標系におけるベクトルであるから、理論上は直交する。しかし、実際に演算にて更新した水平方向ベクトルと重力方向ベクトルは直交しない場合があり、直交しない状態のまま姿勢の推定を行うと、その推定精度が低下してしまう。そこで、上記の構成によれば、更新後の水平方向ベクトルを、更新後の重力方向ベクトルと直交するように補正する。これにより、姿勢の推定精度が低下することを防ぐことができる。
また、本発明の姿勢推定方法は、上記の課題を解決するために、加速度センサ、角速度センサ、および磁気センサの出力を用いてセンサ座標系における移動体の状態ベクトルを逐次更新し、該状態ベクトルを用いて上記移動体の姿勢をトラッキングする姿勢推定装置による姿勢推定方法であって、上記角速度センサの出力を用いて上記状態ベクトルの成分である重力方向ベクトルの予測値を算出し、該予測値を上記加速度センサの出力を観測として用いて更新する重力方向推定ステップと、上記角速度センサの出力を用いて上記状態ベクトルの成分である水平方向ベクトルの予測値を算出し、該予測値を上記磁気センサの出力を観測として用いて更新する水平方向推定ステップと、更新後の上記重力方向ベクトルと更新後の上記水平方向ベクトルとを用いて上記移動体の姿勢情報を生成する姿勢推定ステップと、を含む。該方法によれば、上記姿勢推定装置と同様の作用効果を奏する。
本発明の各態様に係る姿勢推定装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記姿勢推定装置が備える各部(ソフトウェア要素)として動作させることにより上記姿勢推定装置をコンピュータにて実現させる姿勢推定装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明によれば、姿勢の推定精度を低下させることなく状態ベクトルの更新に係る演算コストを低下させることができるという効果を奏する。
本発明の実施形態1に係る姿勢推定装置の要部構成の一例を示すブロック図である。 重力方向推定部が実行する処理の一例を示すフローチャートである。 水平方向推定部が実行する処理の一例を示すフローチャートである。
〔実施形態1〕
以下、本発明の一実施の形態について図1から図3に基づいて説明する。図1は、本実施形態の姿勢推定装置1の要部構成の一例を示すブロック図である。姿勢推定装置1は、姿勢の推定対象となる移動体に保持され、該移動体の姿勢をトラッキングする装置である。図示のように、姿勢推定装置1は、制御部10、記憶部11、出力部12、加速度センサ13、タイミングデバイス14、角速度センサ15、および磁気センサ16を備えている。
制御部10は、姿勢推定装置1の各部を統括して制御するものであり、重力方向推定部100、水平方向推定部101、および姿勢推定部102を含む。また、記憶部11は、姿勢推定装置1が使用する各種データを記憶するものであり、出力部12は姿勢推定部102が推定した姿勢を示す姿勢情報を出力するものである。出力部12の出力態様は特に限定されず、表示出力であってもよい。この場合、出力部12は表示装置ということになる。また、他の装置(例えば姿勢情報を用いて移動体の位置を算出する測位装置)への出力であってもよく、この場合、出力部12は通信装置あるいは通信インターフェースということになる。
加速度センサ13は、センサ座標系における3軸方向の加速度ベクトルを計測して制御部10に入力するセンサデバイスである。加速度センサ13が制御部10に入力する加速度ベクトル(加速度センサ13の出力)は下記のように表される。
Figure 0006705972
なお、上記センサ座標系とは、加速度センサ13の出力する加速度ベクトルの3軸方向で規定される座標系である。ここでは、加速度センサ13、角速度センサ15、および磁気センサ16は、同一のセンサ座標系でセンサデータを計測できるか、あるいは計測できるとみなすことができるものとする。また、仮に各センサが異なる座標系上に配置されていたとしても、一つの仮想的なセンサ座標系での計測結果が制御部10に出力されることを前提とする。
タイミングデバイス14は、センサデータの取得タイミングを計測するデバイスである。具体的には、タイミングデバイス14は、加速度センサ13による加速度ベクトルの取得、角速度センサ15による角速度ベクトルの取得、および磁気センサ16による磁気ベクトルの取得が行われたタイミングを検出する。そして、タイミングデバイス14は、センサデータの取得時間間隔Δtを示すタイミングデータを制御部10に入力する。Δtは、時間的に連続して取得されたサンプル(すなわちセンサデータ)間の離散時刻差であるとも言える。なお、タイミングデバイス14は、上記Δtを算出可能なタイミングデータを出力するものであればよく、例えば絶対時刻を計測・出力するデバイスであってもよい。なお、各センサにおいてセンサデータが同時に取得されることは必須ではない。
角速度センサ15は、センサ座標系における3軸方向の角速度ベクトルを計測して制御部10に入力するセンサデバイスである。角速度センサ15が制御部10に入力する角速度ベクトル(角速度センサ15の出力)は下記のように表される。
Figure 0006705972
磁気センサ16は、センサ座標系における3軸方向の磁気ベクトルを計測して制御部10に入力するセンサデバイスである。磁気センサ16が制御部10に入力する磁気ベクトル(磁気センサ16の出力)は下記のように表される。
Figure 0006705972
重力方向推定部100は、センサ座標系における移動体の状態ベクトルを逐次更新する。より詳細には、重力方向推定部100は、センサ座標系における重力方向ベクトルを状態データ(状態ベクトル)として保持し、更新(推定)し、出力する。重力方向ベクトルは、鉛直方向ベクトルと表現することもできる。詳細は後述するが、重力方向推定部100は、センサ座標系におけるセンサデータ(3軸加速度ベクトルおよび3軸角速度ベクトル)と、センサデータの取得時間間隔Δtを入力として重力方向ベクトルを推定する。
重力方向推定部100は、内部の状態データとして、少なくとも状態ベクトル(具体的には重力方向ベクトル)と、状態ベクトルの誤差分散共分散行列Pを保持している。本例では重力方向ベクトルが下記のように3×1サイズの行列であるから、誤差分散共分散行列は、3×3サイズの正方行列となる。重力方向推定部100は、カルマンフィルタの枠組みに従ってこれらの状態データを処理する。上記重力方向ベクトルは下記のように表される。
Figure 0006705972
水平方向推定部101は、センサ座標系における移動体の状態ベクトルを逐次更新する。より詳細には、水平方向推定部101は、センサ座標系における水平方向ベクトルを状態データ(状態ベクトル)として保持し、更新(推定)し、出力する。詳細は後述するが、水平方向推定部101は、センサ座標系におけるセンサデータ(3軸加速度ベクトル、3軸角速度ベクトル、および3軸磁気ベクトル)と、センサデータの取得時間間隔Δtを入力として水平方向ベクトルを推定する。
水平方向推定部101は、内部の状態データとして、少なくとも状態ベクトル(具体的には水平方向ベクトル)と、状態ベクトルの誤差分散共分散行列Pを保持している。本例では水平方向ベクトルが下記のように3×1サイズの行列であるから、誤差分散共分散行列は、3×3サイズの正方行列となる。水平方向推定部101は、カルマンフィルタの枠組みに従ってこれらの状態データを処理する。上記水平方向ベクトルは下記のように表される。このベクトルは、水平方向の基準を表す単位ベクトルである。なお、水平方向の基準とは、真北方向を指す水平方向ベクトルであり、このため、水平方向ベクトルは、真北方向ベクトルと表現することもできる。
Figure 0006705972
姿勢推定部102は、センサ座標系における重力方向ベクトルと水平方向ベクトルから移動体の姿勢を示す姿勢情報を生成する。具体的には、姿勢推定部102は、まず、重力方向推定部100が保持する状態データである重力方向ベクトル(更新後)と、水平方向推定部101が保持する状態データである水平方向ベクトル(更新後)との外積ベクトル(下記)を算出する。
Figure 0006705972
そして、姿勢推定部102は、上記外積ベクトルを用いて、下記の数式(1)で示される回転行列R(姿勢情報)を生成する。この回転行列Rを用いることにより、センサ座標系から世界座標系に姿勢を変換することができる。また、この回転行列Rは、歩行者自律航法などにも利用可能である。なお、姿勢推定部102が生成する姿勢情報は、移動体の姿勢を示すものであればよく、下記の回転行列Rに限られない。例えば、姿勢推定部102は、重力方向ベクトルと水平方向ベクトルを用いてDCM(direction cosine matrix)を生成してもよい。
Figure 0006705972
〔重力方向推定部が実行する処理の流れ〕
次に、重力方向推定部100が実行する処理(姿勢推定方法)について図2に基づいて説明する。図2は、重力方向推定部100が実行する処理の一例を示すフローチャートである。
まず、重力方向推定部100は、重力方向推定部100が保持する状態データ、すなわち状態ベクトル(重力方向ベクトル)と、その誤差分散共分散行列を初期化する(S200)。初期状態における姿勢(状態ベクトル)が未知であれば(多くの場合が未知である)、状態ベクトルの初期値は任意の値とすればよく、例えば(0,0,1)としてもよい。また、誤差分散共分散行列については、取り得る状態ベクトルの不確かさを勘案して設定すればよい。
続いて、重力方向推定部100は、角速度センサ15から角速度ベクトルの入力を受け付ける(S201)と共に、タイミングデバイス14からのタイミングデータΔtの入力を受け付ける(S202)。なお、センサ間の同期が取れていない場合は、角速度ベクトルのセンサデータの取得時間間隔をΔtとする。
次に、重力方向推定部100は、S201で入力された角速度ベクトルとS202で入力されたΔtから状態データを更新する(S203)。この更新は予測に基づく更新であり、重力方向ベクトルの予測値が算出され、該予測値により重力方向推定部100の保持する重力方向ベクトルが上書き更新される。具体的には、重力方向推定部100は、下記の数式(2)により状態ベクトル(重力方向ベクトル)を更新する。
Figure 0006705972
この数式(2)において、
Figure 0006705972
は、更新後の状態ベクトル(重力方向ベクトルの予測値)である。また、exp()は行列の指数関数を返す演算子である。そして、
Figure 0006705972
における角速度ベクトルに付された演算子は歪対称行列(skew symmetric matrix)を取得するための演算子である。
また、重力方向推定部100は、下記の数式(3)により誤差分散共分散行列を更新する。
Figure 0006705972
この数式(3)において、Mは更新後の誤差分散共分散行列であり、Φ(Δt)はexp(FΔt)である。また、Fは、カルマンフィルタにおいて、予測更新式の線形要素となる行列である。なお、非線形の行列については、拡張カルマンフィルタの枠組みに従い、テイラー展開によって1次項までを用いて線形化する。そして、Qは、プロセス誤差分散共分散行列である。
次に、重力方向推定部100は、加速度センサ13から加速度ベクトルの入力を受け付ける(S204)。そして、重力方向推定部100は、上記加速度ベクトルを重力方向ベクトル(単位ベクトル)の観測として用いて、以下の数式(4)〜(6)により状態データ(重力方向ベクトルの予測値とその誤差分散共分散行列)を更新する(S205、重力方向推定ステップ)。なお、加速度ベクトルの単位系は[G](地球の重力加速度を1とする単位)として扱う。
Figure 0006705972
Figure 0006705972
Figure 0006705972
上記数式(4)のKはカルマンゲインであり、Rは観測誤差分散共分散行列である。また、上記数式(5)のIは単位行列、Pは更新後の誤差分散共分散行列である。
観測誤差分散共分散行列Rは、より詳細には、観測として得られる加速度ベクトルによる重力方向の観測における誤差の分散共分散行列である。例えば、静置されているような状況下では、小さな値を要素とし、運動中(運動加速度が外乱として印可されているような状況下)では、大きな値を要素とするようにRを設定する。また、例えば、姿勢推定装置1を歩行者が装着するという前提がある場合、歩行動作中と、非歩行動作中でRの要素を切り替えてもよい。なお、この場合、加速度ベクトルの値等に基づいて歩行動作中であることを検出する歩行動作検出部を制御部10の構成要素に追加する。そして、歩行動作の検出を契機にRの要素を切り替え、その後歩行動作が検出されなくなったことを契機にRの要素を戻せばよい。
S205の終了後、処理はS201に戻る。つまり、S201〜S205の処理は、移動体の姿勢のトラッキング中において継続して繰り返し行われ、これにより移動体の状態データは移動体の最新の状態に応じたものに逐次更新される。
〔水平方向推定部が実行する処理の流れ〕
次に、水平方向推定部101が実行する処理(姿勢推定方法)について図3に基づいて説明する。図3は、水平方向推定部101が実行する処理の一例を示すフローチャートである。なお、本処理では、上述した図2の処理の計算結果を利用するので、本処理は図2の処理の終了後に行われる。
まず、水平方向推定部101は、水平方向推定部101が保持する状態データ、すなわち状態ベクトル(水平方向ベクトル)と、その誤差分散共分散行列を初期化する(S300)。初期状態における姿勢(状態ベクトル)が未知であれば(多くの場合が未知である)、状態ベクトルの初期値は任意の値とすればよく、例えば(1,0,0)としてもよい。また、誤差分散共分散行列については、取り得る状態ベクトルの不確かさを勘案して設定すればよい。
続いて、水平方向推定部101は、角速度センサ15から角速度ベクトルの入力を受け付ける(S301)と共に、タイミングデバイス14からのタイミングデータΔtの入力を受け付ける(S302)。なお、センサ間の同期が取れていない場合は、角速度ベクトルのセンサデータの取得時間間隔をΔtとする。
次に、水平方向推定部101は、S301で入力された角速度ベクトルとS302で入力されたΔtから状態データを更新する(S303)。この更新は予測に基づく更新であり、水平方向ベクトルの予測値が算出され、該予測値により水平方向推定部101の保持する水平方向ベクトルが上書き更新される。具体的には、水平方向推定部101は、下記の数式(7)により状態ベクトル(水平方向ベクトル)を更新する。
Figure 0006705972
この数式(7)において、
Figure 0006705972
は、更新後の状態ベクトル(水平方向ベクトルの予測値)である。また、exp()は行列の指数関数を返す演算子である。そして、
Figure 0006705972
における角速度ベクトルに付された演算子は歪対称行列を取得するための演算子である。
なお、S303の更新に用いる行列は、S203で用いるものと計算方法が同一である。このため、同一の角速度ベクトルと同一のΔtが入力されている場合は、水平方向推定部101は、重力方向推定部100がS203で求めた行列を流用し、それらの行列の計算処理を省略してもよい。
また、水平方向推定部101は、下記の数式(8)により誤差分散共分散行列を更新する。
Figure 0006705972
この数式(8)において、Mは更新後の誤差分散共分散行列であり、Φ(Δt)はexp(FΔt)である。また、Fは、カルマンフィルタにおいて、予測更新式の線形要素となる行列である。なお、非線形の行列については、拡張カルマンフィルタの枠組みに従い、テイラー展開によって1次項までを用いて線形化する。そして、Qは、プロセス誤差分散共分散行列である。
次に、水平方向推定部101は、磁気センサ16から磁気ベクトルの入力を受け付ける(S304)と共に、重力方向推定部100から、重力方向推定部100が保持する重力方向ベクトルを取得する(S305)。なお、この重力方向ベクトルは、S205で更新された、センサ座標系における重力方向ベクトルである。
続いて、水平方向推定部101は、S304で入力を受け付けた磁気ベクトルが、状態データの更新に用いるのに適切な値となっているか否かを検査する(S306)。具体的には、水平方向推定部101は、磁気ベクトルと重力方向ベクトルを用いて、以下の二つの検査を実行する。
(A)磁気ベクトルの大きさの検査
(B)磁気ベクトルの伏角の検査
上記(A)の検査では、水平方向推定部101は、S304で得られた磁気ベクトルの大きさが、この検査が実施されている周辺地域(移動体が存在する地域)の地磁気ベクトルの大きさに対して、所定の誤差範囲に収まっているか否かを判定する。
上記(B)の検査では、水平方向推定部101は、S304で得られた磁気ベクトルとS305で得られた重力方向ベクトルを用いて磁気ベクトルの伏角を計算する。そして、水平方向推定部101は、計算した伏角が、この検査が実施されている周辺地域(移動体が存在する地域)の地磁気ベクトルの伏角に対して、所定の誤差範囲に収まっているか否かを判定する。
なお、上記判定に用いる各データ(地磁気ベクトルの大きさすなわち全磁力と、地磁気ベクトルの伏角)は、予め記憶部11等に記憶しておいてもよい。例えば、地域ごとの地磁気ベクトルの大きさと伏角を記録したデータベースを記憶しておけば、移動体の位置に応じたデータを取得可能である。また、これらのデータを演算にて算出してもよい。この他にも、これらデータは、該データを記憶しているか、あるいは該データを算出する機能を備えた他の装置から取得してもよい。後述のS308で用いる地磁気ベクトルの偏角についても同様である。
続いて、水平方向推定部101は、S304で得られた磁気ベクトルが検査を通過するか否かを判定する(S307)。具体的には、水平方向推定部101は、上記(A)(B)の検査の両方において所定の誤差範囲に収まっていると判定した場合に検査通過と判定し、それ以外の場合には検査不通過と判定する。
S307で検査通過と判定した場合(S307でYES)、水平方向推定部101は、S304で得られた磁気ベクトルを、基準となる水平方向の観測として用いて、状態データ(水平方向ベクトルの予測値とその誤差分散共分散行列)を更新する(S308、水平方向推定ステップ)。具体的には、水平方向推定部101は下記の数式(9)〜(11)を用いて状態データを更新する。
Figure 0006705972
Figure 0006705972
Figure 0006705972
上記数式(9)のRは観測誤差分散共分散行列である。また、上記数式(10)のKはカルマンゲインであり、Iは単位行列、Pは更新後の誤差分散共分散行列である。
また、上記数式(11)の
Figure 0006705972
は、磁気ベクトルを重力方向ベクトルと直交するように補正すると共に、地磁気ベクトルの偏角だけ補正した水平方位角ベクトル(単位ベクトル)である。このような補正後の磁気ベクトルを用いることにより、水平方向ベクトルを高精度に更新することができる。
一方、S307で検査不通過と判定した場合(S307でNO)、水平方向推定部101は、磁気ベクトルの観測は無効であるとみなし、予測のみから状態データを更新する(S309)。具体的には、水平方向推定部101は、S303で得られた状態データの値を用いて状態データを上書きする。すなわち、
Figure 0006705972
Figure 0006705972
とする。この場合には、磁気ベクトルを用いた更新は行われず、実質的には状態データは更新されない。
上記S308およびS309の何れの処理の後にもS310の処理が行われる。S310では、水平方向推定部101は、S305で得られた重力方向ベクトルに直交するように、S308またはS309の処理において更新された水平方向ベクトルを補正する。具体的には、水平方向推定部101は、下記の数式(12)にて補正後の水平方向ベクトルを算出し、この水平方向ベクトルを状態ベクトルとして保持する。
Figure 0006705972
S310の終了後、処理はS301に戻る。つまり、S301〜S310の処理は、移動体の姿勢のトラッキング中において継続して繰り返し行われ、これにより移動体の状態データは移動体の最新の状態に応じたものに逐次更新される。
〔姿勢の推定〕
以上説明したように、重力方向推定部100は、重力方向ベクトルを含む状態データを逐次更新し、水平方向推定部101は、水平方向ベクトルを含む状態データを随時更新する。よって、姿勢推定部102は、任意のタイミングにおいて、重力方向推定部100から重力方向ベクトルを取得すると共に、水平方向推定部101から水平方向ベクトルを取得して、上述の数式(1)により移動体の姿勢を示す姿勢情報を生成する(姿勢推定ステップ)。そして、姿勢の推定を逐次行うことにより、移動体の姿勢のトラッキングを行うことができる。
〔演算量の低減効果〕
姿勢推定装置1で更新する重力方向ベクトルと水平方向ベクトルは何れも3×1行列であるから、これらの更新の際に発生する乗算は何れも3×3行列で済む。これに対し、非特許文献1のような従来技術では、9つの成分を持つ9×1行列で表される状態ベクトルを更新し、この更新の際には9×9行列の乗算が発生する。
9×9行列の乗算に係る演算コストは、3×3行列の乗算に係る演算コストの3=27倍であるから、重力方向ベクトルと水平方向ベクトルのそれぞれについて更新を行う演算コストを考慮しても、従来技術の方が27÷2=13.5倍も演算コストが大きい。よって、姿勢推定装置1によれば、従来技術に対して最大で13.5倍も演算速度を高速化することが可能になる。また、この高速化は、従来のカルマンフィルタによる状態ベクトルの更新に冗長性が含まれている点に着目し、その冗長性が解消されるようにすることによって実現されているから、姿勢の推定精度は従来技術と遜色がない。
〔実施形態2〕
上記実施形態では、加速度センサ13、角速度センサ15、および磁気センサ16を備える姿勢推定装置1について説明したが、本発明の姿勢推定装置1は、これらのセンサの計測結果を取得できればよく、これらのセンサを必ずしも備えている必要はない。例えば、本発明の姿勢推定装置1は、移動体に装着された上述の各センサから無線通信にて計測結果を取得してもよい。また、リアルタイムで姿勢を推定する必要がない場合には、上述の各センサの計測結果を記録媒体に記録しておき、この記録媒体から計測結果を取得してもよい。同様に、本発明の姿勢推定装置1は、タイミングデバイス14を必ずしも備えている必要はなく、姿勢推定装置1の外部のタイミングデバイス14からタイミングデータを取得してもよい。
〔実施形態3〕
上記実施形態では、姿勢情報を出力する姿勢推定装置1について説明したが、生成した姿勢情報を用いて姿勢情報以外のパラメータを算出・出力する装置も本発明の範疇に含まれる。例えば、上記実施形態の手法にて生成した姿勢情報と、移動体の速度(加速度センサ13の計測結果から算出可能)とを用いて、その移動体の現在位置を算出する移動体の測位装置も本発明の範疇に含まれる。また、上記姿勢情報から移動体(例えば歩行者)がどのような動作を行っているかを検出する動作検出装置や、上記姿勢情報から移動体の移動速度を算出する移動速度算出装置も本発明の範疇に含まれる。
〔実施形態4〕
上記各実施形態では、従来技術(例えば非特許文献1)におけるカルマンフィルタの状態ベクトルの9つの成分のうち、角速度成分は状態ベクトルとして使用していないが、角速度成分も状態ベクトルに含めてもよい。
この場合、重力方向推定部100の保持する状態ベクトルが、3軸の重力方向成分および3軸の角速度成分の計6つの成分を持つ6×1行列となる。同様に、水平方向推定部101の保持する状態ベクトルが、3軸の水平方向成分および3軸の角速度成分の計6つの成分を持つ6×1行列となる。このような構成であっても、9つの成分を有する状態ベクトルを更新する従来技術と比べて更新に係る演算量を減らすことができる。ただし、本願の発明者による検討の結果、角速度成分を状態ベクトルに含めなくとも、含めた場合と同等の精度で姿勢の推定が可能であることが分かっているので、演算量を減らすという観点からは角速度成分を状態ベクトルに含めないことが好ましい。
〔ソフトウェアによる実現例〕
姿勢推定装置1の制御ブロック(特に制御部10)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、姿勢推定装置1は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
1 姿勢推定装置
13 加速度センサ
15 角速度センサ
16 磁気センサ
100 重力方向推定部
101 水平方向推定部
102 姿勢推定部

Claims (7)

  1. 加速度センサ、角速度センサ、および磁気センサの出力を用いてセンサ座標系における移動体の状態ベクトルを逐次更新し、該状態ベクトルを用いて上記移動体の姿勢をトラッキングする姿勢推定装置であって、
    上記角速度センサの出力を用いて上記状態ベクトルの成分である重力方向ベクトルの予測値を算出し、該予測値を上記加速度センサの出力を観測として用いて更新する重力方向推定部と、
    上記角速度センサの出力を用いて上記状態ベクトルの成分である水平方向ベクトルの予測値を算出し、該予測値を上記磁気センサの出力を観測として用いて更新する水平方向推定部と、
    更新後の上記重力方向ベクトルと更新後の上記水平方向ベクトルとを用いて上記移動体の姿勢情報を生成する姿勢推定部と、を備えていることを特徴とする姿勢推定装置。
  2. 上記水平方向推定部は、上記磁気センサの出力が上記水平方向ベクトルの更新に用いるのに適切な値となっているか否かを検査し、適切な値となっていない場合には該磁気センサの出力を観測として用いた更新を行わないことを特徴とする請求項1に記載の姿勢推定装置。
  3. 上記水平方向推定部は、上記重力方向推定部が更新した上記重力方向ベクトルを用いて上記検査を行うことを特徴とする請求項2に記載の姿勢推定装置。
  4. 上記水平方向推定部は、更新後の上記水平方向ベクトルを、更新後の上記重力方向ベクトルと直交するように補正することを特徴とする請求項1から3の何れか1項に記載の姿勢推定装置。
  5. 加速度センサ、角速度センサ、および磁気センサの出力を用いてセンサ座標系における移動体の状態ベクトルを逐次更新し、該状態ベクトルを用いて上記移動体の姿勢をトラッキングする姿勢推定装置による姿勢推定方法であって、
    上記角速度センサの出力を用いて上記状態ベクトルの成分である重力方向ベクトルの予測値を算出し、該予測値を上記加速度センサの出力を観測として用いて更新する重力方向推定ステップと、
    上記角速度センサの出力を用いて上記状態ベクトルの成分である水平方向ベクトルの予測値を算出し、該予測値を上記磁気センサの出力を観測として用いて更新する水平方向推定ステップと、
    更新後の上記重力方向ベクトルと更新後の上記水平方向ベクトルとを用いて上記移動体の姿勢情報を生成する姿勢推定ステップと、を含むことを特徴とする姿勢推定方法。
  6. 請求項1から4の何れか1項に記載の姿勢推定装置としてコンピュータを機能させるための制御プログラムであって、上記重力方向推定部、上記水平方向推定部、および上記姿勢推定部としてコンピュータを機能させるための制御プログラム。
  7. 請求項6に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2016101925A 2016-05-20 2016-05-20 姿勢推定装置、姿勢推定方法、制御プログラム、および記録媒体 Active JP6705972B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016101925A JP6705972B2 (ja) 2016-05-20 2016-05-20 姿勢推定装置、姿勢推定方法、制御プログラム、および記録媒体
US15/169,875 US9939273B2 (en) 2016-05-20 2016-06-01 Attitude estimating device, attitude estimating method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016101925A JP6705972B2 (ja) 2016-05-20 2016-05-20 姿勢推定装置、姿勢推定方法、制御プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JP2017207456A JP2017207456A (ja) 2017-11-24
JP6705972B2 true JP6705972B2 (ja) 2020-06-03

Family

ID=60330015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016101925A Active JP6705972B2 (ja) 2016-05-20 2016-05-20 姿勢推定装置、姿勢推定方法、制御プログラム、および記録媒体

Country Status (2)

Country Link
US (1) US9939273B2 (ja)
JP (1) JP6705972B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10197396B2 (en) * 2016-01-27 2019-02-05 Apple Inc. Always on compass calibration system and methods
FR3082611B1 (fr) * 2018-06-13 2020-10-16 Sysnav Procede de calibration de magnetometres equipant un objet
JP6581276B1 (ja) * 2018-10-18 2019-09-25 株式会社ショーワ 状態量推定装置、制御装置、および状態量推定方法
CN109631939B (zh) * 2018-11-08 2020-07-28 湖北三江航天红峰控制有限公司 一种基于磁强计和加速度计的快速对准方法
CN109740418B (zh) * 2018-11-21 2022-10-14 中山大学 一种基于多加速度传感器的瑜伽动作识别方法
CN109724597B (zh) * 2018-12-19 2021-04-02 上海交通大学 一种基于函数迭代积分的惯性导航解算方法及系统
CN109596124A (zh) * 2019-01-31 2019-04-09 北京永安信通科技股份有限公司 基于步行数据的单人定位方法、装置和电子设备
CN113728394A (zh) * 2019-05-21 2021-11-30 史密夫和内修有限公司 身体活动执行和训练的评分度量
CN110579620A (zh) * 2019-10-25 2019-12-17 深圳航天东方红海特卫星有限公司 一种通过磁强计对角速度进行测量的方法及系统
CN111649745B (zh) * 2020-05-18 2022-04-05 北京三快在线科技有限公司 电子设备的姿态估计方法、装置、电子设备和存储介质
CN113091769A (zh) * 2021-03-30 2021-07-09 Oppo广东移动通信有限公司 姿态校准方法、装置、存储介质及电子设备
CN113267182B (zh) * 2021-04-28 2024-04-30 广东国天时空科技有限公司 基于地磁测量值的修正方法及地磁检测装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751151B2 (en) * 2012-06-12 2014-06-10 Trx Systems, Inc. System and method for localizing a trackee at a location and mapping the location using inertial sensor information
WO2010001970A1 (ja) 2008-07-02 2010-01-07 独立行政法人産業技術総合研究所 移動体の姿勢角処理装置
US8515707B2 (en) * 2009-01-07 2013-08-20 Sensor Platforms, Inc. System and method for determining an attitude of a device undergoing dynamic acceleration using a Kalman filter
WO2011068184A1 (ja) 2009-12-03 2011-06-09 独立行政法人産業技術総合研究所 移動体の測位装置
US9524268B2 (en) * 2011-10-31 2016-12-20 University of Floria Research Foundation, Inc. Vestibular dynamic inclinometer
US9417091B2 (en) * 2013-05-13 2016-08-16 The Johns Hopkins University System and method for determining and correcting field sensors errors

Also Published As

Publication number Publication date
US9939273B2 (en) 2018-04-10
JP2017207456A (ja) 2017-11-24
US20170336208A1 (en) 2017-11-23

Similar Documents

Publication Publication Date Title
JP6705972B2 (ja) 姿勢推定装置、姿勢推定方法、制御プログラム、および記録媒体
US8758275B2 (en) Moving body posture angle processing device
JP6322960B2 (ja) 慣性装置、方法及びプログラム
CN108731664B (zh) 机器人状态估计方法、装置、计算机设备和存储介质
US10627237B2 (en) Offset correction apparatus for gyro sensor, recording medium storing offset correction program, and pedestrian dead-reckoning apparatus
US20140222369A1 (en) Simplified method for estimating the orientation of an object, and attitude sensor implementing such a method
Renaudin et al. Quaternion based heading estimation with handheld MEMS in indoor environments
Benzerrouk et al. Robust IMU/UWB integration for indoor pedestrian navigation
Li et al. Research on multi-sensor pedestrian dead reckoning method with UKF algorithm
US20190212146A1 (en) Positioning system and positioning method
US11709056B2 (en) Method and device for magnetic field measurement by magnetometers
Hostettler et al. IMU and magnetometer modeling for smartphone-based PDR
Hasan et al. Smart phone based sensor fusion by using Madgwick filter for 3D indoor navigation
JP6548305B2 (ja) 進行方向推定装置及び進行方向推定方法
Pan et al. Real-time accurate odometer velocity estimation aided by accelerometers
Schindhelm et al. Usability of apple iPhones for inertial navigation systems
JP2013061309A (ja) カルマンフィルタ、状態推定装置、カルマンフィルタの制御方法、及びカルマンフィルタの制御プログラム
JP2013122384A (ja) カルマンフィルタ、及び、状態推定装置
JP2006038650A (ja) 姿勢計測方法、姿勢制御装置、方位計及びコンピュータプログラム
Wang et al. Human motion tracking based on complementary Kalman filter
JP2020529016A (ja) 磁気センサにより測定される磁場からの方位の決定
Zhu et al. A hybrid step model and new azimuth estimation method for pedestrian dead reckoning
RU2629539C1 (ru) Способ измерения магнитного курса подвижного объекта
CN107289935B (zh) 一种适用于可穿戴设备的室内导航算法
EP3765869A1 (en) Motion capture system and method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190515

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20190816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200312

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: 20200317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200414

R150 Certificate of patent or registration of utility model

Ref document number: 6705972

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250