JP2022045269A - 移動体の姿勢推定方法 - Google Patents
移動体の姿勢推定方法 Download PDFInfo
- Publication number
- JP2022045269A JP2022045269A JP2020150872A JP2020150872A JP2022045269A JP 2022045269 A JP2022045269 A JP 2022045269A JP 2020150872 A JP2020150872 A JP 2020150872A JP 2020150872 A JP2020150872 A JP 2020150872A JP 2022045269 A JP2022045269 A JP 2022045269A
- Authority
- JP
- Japan
- Prior art keywords
- posture
- moving body
- value
- estimated
- hessian matrix
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 239000011159 matrix material Substances 0.000 claims abstract description 67
- 230000001133 acceleration Effects 0.000 claims abstract description 49
- 238000001514 detection method Methods 0.000 claims abstract description 43
- 238000013528 artificial neural network Methods 0.000 claims description 12
- 230000002194 synthesizing effect Effects 0.000 claims description 6
- 230000036544 posture Effects 0.000 description 232
- 230000006870 function Effects 0.000 description 50
- 239000013598 vector Substances 0.000 description 29
- 239000002245 particle Substances 0.000 description 11
- 206010034719 Personality change Diseases 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000005259 measurement Methods 0.000 description 7
- 239000000047 product Substances 0.000 description 5
- 230000036962 time dependent Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005358 geomagnetic field Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Image Analysis (AREA)
Abstract
【課題】Madgwickフィルタの手法による移動体の姿勢の推定値の確からしさ(信頼度)の程度を適切に把握し得る状態量を得ることができる方法を提供する。【解決手段】角速度の検出値と、加速度及び地磁気のうちの少なくとも一方の検出対象量の検出値とからMadgwickフィルタにより、検出対象量の検出値と基準値との偏差の大きさを表す損失関数を最小化するように、移動体の姿勢の推定値を表す姿勢指標値を逐次求める第1ステップと、損失関数の姿勢指標値に対する2階偏微分値を成分として構成されるヘッセ行列を求め、該ヘッセ行列の固有値を姿勢指標値の確からしさに関連する状態量として生成する第2ステップとを備える。【選択図】図2
Description
本発明は、移動体の姿勢を推定する方法に関する。
移動体の姿勢を推定する手法は、従来より様々な手法が知られている。また、例えば特許文献1には、複数のアルゴリズムのそれぞれにより移動体の位置及び姿勢を推定し、これらの位置及び姿勢を、それぞれの推定値の確からしさに関する状態量から学習処理部により求めた重み係数により合成することで、移動体の位置及び姿勢を特定する技術が提案されている。
ところで、移動体の姿勢を推定する1つの手法として、例えばMadgwickフィルタの手法を採用し得る。この場合、Madgwickフィルタの手法による移動体の推定値に応じて移動体の移動を制御する場合、あるいは、Madgwickフィルタの手法による移動体の推定値を他の手法による姿勢の推定値と統合する場合等に、Madgwickフィルタの手法による移動体の姿勢の推定値の確からしさ(信頼度)の程度を把握し得ることが望まれる。
本発明はかかる背景に鑑みてなされたものであり、Madgwickフィルタの手法による移動体の姿勢の推定値の確からしさ(信頼度)の程度を適切に把握し得る状態量を得ることができる方法を提供することを目的とする。
さらに、Madgwickフィルタの手法による移動体の姿勢の推定値と、他の手法による移動体の姿勢の推定値とから上記状態量を利用して適切に移動体の姿勢を特定することが可能となる方法を提供することを目的とする。
本発明の移動体の姿勢推定方法は、上記の目的を達成するために、移動体に発生する角速度の検出値と、該移動体に発生する加速度及び該移動体の存在位置での地磁気のうちの少なくとも一方からなる検出対象量の検出値とを用いて該移動体の姿勢を推定する方法であって、
前記角速度の検出値と前記検出対象量の検出値とからMadgwickフィルタにより、前記検出対象量の検出値と該検出対象量の基準値との偏差の大きさを表す所定の損失関数を最小化するように、前記移動体の姿勢の推定値を表す姿勢指標値を逐次求める第1ステップと、
前記損失関数の前記姿勢指標値に対する2階偏微分値を成分として構成されるヘッセ行列を求め、当該求めたヘッセ行列の固有値を前記姿勢指標値の確からしさに関連する状態量として生成する第2ステップとを備えることを特徴とする(第1発明)。
前記角速度の検出値と前記検出対象量の検出値とからMadgwickフィルタにより、前記検出対象量の検出値と該検出対象量の基準値との偏差の大きさを表す所定の損失関数を最小化するように、前記移動体の姿勢の推定値を表す姿勢指標値を逐次求める第1ステップと、
前記損失関数の前記姿勢指標値に対する2階偏微分値を成分として構成されるヘッセ行列を求め、当該求めたヘッセ行列の固有値を前記姿勢指標値の確からしさに関連する状態量として生成する第2ステップとを備えることを特徴とする(第1発明)。
ここで、Madgwickフォルタにより移動体の姿勢を推定する処理を実行した場合、上記のヘッセ行列の固有値が、前記移動体の姿勢の推定値を表す姿勢指標値の確からしさと相関性を有することが、本願発明者による様々な検討により判明した。
そこで、第1発明を上記の如く構成した。これにより、第1発明によれば、Madgwickフィルタの手法による移動体の姿勢の推定値の確からしさ(信頼度)の程度を適切に把握し得る状態量を得ることができる。
上記第1発明では、前記検出対象量は、前記加速度及び前記地磁気の両方から成る場合には、前記ヘッセ行列は、前記加速度に関連する第1ヘッセ行列と前記地磁気に関連する第2ヘッセ行列との和として表される行列である。この場合、前記第2ステップで生成される状態量は、前記第1ヘッセ行列の固有値と前記第2ヘッセ行列の固有値とのうちの少なくとも一方を含むという態様を採用し得る(第2発明)。
このように前記検出対象量が、加速度及び地磁気の両方から成る場合には、上記第1ヘセ行列の固有値及び第2ヘッセ行列の固有値のいずれをも、姿勢指標値の確からしさに関する適切な状態量として使用し得る。
上記第1発明又は第2発明では、前記角速度及び前記検出対象量をそれぞれ検出可能なセンサを含む複数のセンサのうちの1つ以上のセンサの検出値を用いて、前記Madgwickフィルタと異なる1つ以上のアルゴリズムにより前記移動体の姿勢を逐次推定する処理を各アルゴリズ毎に実行する第3ステップと、前記各アルゴリズムにより得られた前記移動体の姿勢の推定値の確からしさに関連する状態量を当該各アルゴリズム毎に生成する第4ステップと、前記Madgwickフィルタに対応して前記第2ステップで生成された状態量と前記各アルゴリズムに対応して前記第4ステップで生成された状態量とを学習済のニューラルネットワークに入力し、当該入力された状態量から該ニューラルネットワークにより前記Madgwickフィルタ及び前記各アルゴリズムのそれぞれ毎の重み係数を決定する第5ステップと、前記姿勢指標値により示される姿勢の推定値と、前記各アルゴリズムのそれぞれにより得られた姿勢の推定値とを、前記決定された重み係数により合成して得られる姿勢を、前記移動体の姿勢として特定する第6ステップとをさらに備えるという態様を採用し得る(第3発明)。
これによれば、Madgwickフィルタ及び他の各アルゴリズムのそれぞれ毎に生成される状態量から、学習済のニューラルネットワークによって、Madgwickフィルタ及び他の各アルゴリズムのそれぞれに対応する重み係数を適切に決定できる。このため、Madgwickフィルタにより得られた姿勢指標値により示される姿勢の推定値と、他の各アルゴリズムのそれぞれにより得られた姿勢の推定値とを上記重み係数により適切に合成して、移動体の姿勢を特定することができる。このため、信頼性の高い姿勢の特定値を得ることを高いロバスト性で実現することが可能となる。
よって、第3発明によれば、Madgwickフィルタの手法による移動体の姿勢の推定値と、他の手法による移動体の姿勢の推定値とから上記状態量を利用して適切に移動体の姿勢を特定することが可能となる。
本発明の一実施形態を図1~図4を参照して説明する。図1を参照して、本実施形態での移動体1は、例えば車輪型の移動体であり、その移動環境の床面上に、複数の車輪2を介して支持される機体3を有する。そして、移動体1は、図示を省略する電動モータ等のアクチュエータにより、一つ以上の車輪2を回転駆動することにより、あるいは、一つ以上の車輪2の回転駆動と操舵(方向転換)とを行うことにより、床面上を移動する。
この移動体1には、該移動体1の姿勢を推定するために使用する複数のセンサが搭載されている。例えば、一つ以上の車輪2の回転角を検出する角度センサ等のオドメトリ用センサ5と、移動体1の周囲に存在する外界物までの距離を測定する測距センサとしてのレーザ・レンジ・ファインダ6(以降、LRF6という)と、移動体1の上方に存在する天井を撮像するカメラ7と、移動体1の存在位置での地磁気、移動体1に発生する加速度及び移動体1に発生する角速度をそれぞれ検出する磁気センサ11、加速度センサ12及び角速度センサ13を含むセンサユニット10とが移動体1に搭載されている。
なお、オドメトリ用センサ5は、車輪2の回転角を検出する角度センサの他、車輪2のうちの操舵輪の操舵角を検出するセンサを含み得る。また、カメラ7は、本実施形態では、ステレオカメラである。また、磁気センサ11、加速度センサ12および角速度センサ13は、3軸方向の地磁気、3軸方向の加速度、3軸方向の角速度を各々検出可能である。また、加速度センサ12が検出する加速度には、重力加速度が含まれる。
移動体1には、これらのセンサの検出情報を用いて移動体1の姿勢(向き)の推定を行う姿勢推定処理装置20が搭載されている。なお、移動体1の姿勢は、より詳しくは、移動体1の移動環境に対して任意に設定されたグローバル座標系(地表座標系)で
見た機体3の姿勢である。なお、姿勢推定処理装置20により推定する姿勢は、移動体1の空間的な(3次元の)姿勢に限らず、例えば所定の1軸周りの姿勢(姿勢角)であってもよい。例えば、該姿勢は、ヨー方向(上下方向の軸周りの方向)の姿勢角であってもよい。
姿勢推定処理装置20は、例えば、マイコン、メモリ、インターフェース回路等を含む一つ以上の電子回路ユニットにより構成される。そして、姿勢推定処理装置20は、実装されたハードウェア構成及びプログラム(ソウフトウェア構成)の両方又は一方により実現される機能として、図2のブロック図で示す如く、第1姿勢推定処理部21と、第2姿勢推定処理部22と、第3姿勢推定処理部23と、重み係数学習処理部24と、姿勢特定処理部25とを含む。なお、姿勢推定処理装置20は、移動体1の姿勢を推定する機能に限らず、例えば移動体1の位置(グローバル座標系で見た位置)を推定する機能、移動体1の移動制御を行う機能等も含み得る、
第1姿勢推定処理部21は、LRF6の検出情報とオドメトリ用センサ5の検出情報とを用いて移動体1の姿勢を推定する処理を実行する機能部、第2姿勢推定処理部22は、カメラ7の検出情報を用いて移動体1の姿勢を推定する処理を逐次実行する機能部、第3姿勢推定処理部23は、磁気センサ11、加速度センサ12及び角速度センサ13の検出情報を用いて移動体1の姿勢を推定する処理を逐次実行する機能部である。以降の説明では、第1~第3姿勢推定処理部21~23によりそれぞれ推定される移動体1の姿勢を第1推定姿勢、第2推定姿勢、第3推定姿勢ということがある。
また、重み係数学習処理部24は、第1~第3姿勢推定処理部21~23のそれぞれから入力される後述の状態量A,B,Cに応じて、第1~第3姿勢推定処理部21~23のそれぞれに対応する重み係数(詳しくは、第1~第3姿勢推定処理部21~23のそれぞれから出力される移動体1の第1推定姿勢、第2推定姿勢、第3推定姿勢のそれぞれに対する重み係数)を出力する機能部、姿勢特定処理部25は、第1~第3姿勢推定処理部21~23のそれぞれから出力される移動体1の推定位置姿勢を、重み係数学習処理部24から出力される重み係数に応じて合成することによって、移動体1の姿勢を特定する(移動体1の推定姿勢を確定する)機能部である。
以下に、上記各機能部の詳細と併せて、姿勢推定処理装置20の全体の処理を説明する。第1~第3姿勢推定処理部21~23の処理が以下に説明する如く実行される。第1姿勢推定処理部21には、LRF6及びオドメトリ用センサ5のそれぞれの検出情報が入力されると共に、移動体1の移動環境のマップデータ(例えば、2次元の占有格子地図等)とが入力される。この場合、マップデータは、姿勢推定処理装置20のメモリにあらかじめ記憶保持され、あるいは、外部のサーバ等から随時、ダウンロードされる。
そして、第1姿勢推定処理部21は、LRF6の検出情報(移動体1の周囲の外界物の測距データ)と、オドメトリ用センサ5の検出情報と、マップデータとから、姿勢推定用の所定のアルゴリズムにより、移動体1の姿勢を逐次推定する(推定姿勢を逐次決定する)。
本実施形態では、第1姿勢推定処理部21は、姿勢推定用のアルゴリズムとして、移動体1の姿勢と併せて、移動体1の位置(自己位置)をも推定し得るアルゴリズムを使用する。具体的には、第1姿勢推定処理部21では、粒子フィルタを用いて移動体1の位置姿勢(位置及び姿勢)を推定し得るアルゴリズム、例えば、AMCL(Adaptive Monte Carlo Localization)という公知の手法のアルゴリズムが使用される。
このAMCLのアルゴリズムでは、次のような処理によって、移動体1の位置及び姿勢が逐次推定される。まず、移動体1の初期位置及び初期姿勢に応じて、移動体1の近辺に、粒子フィルタにおける複数の粒子(パーティクル)が生成される。そして、オドメトリ用センサ5の検出情報から推定される移動体1の移動速度(並進速度及び角速度)に応じて、各粒子の新たな移動位置及び姿勢が推定される。このとき、各粒子の新たな移動位置及び姿勢は、オドメトリ用センサ5の検出情報の誤差(正規分布状の誤差等)を確率的に反映させて推定される。
次いで、LRF6による移動体1の周囲の外界物の測距データを取得し、この測距データと、マップデータとに基づいて、各粒子の新たな移動位置及び姿勢の尤度が算出される。そして、リサンプリング処理によって、尤度が低い粒子が消滅され、さらに、尤度の高い粒子の近辺に新たな粒子が生成される。
AMCLのアルゴリズムでは、以上の如き処理を逐次実行することで得られる尤度の高い粒子の位置及び姿勢の時系列に基づいて、移動体1の位置及び姿勢が逐次推定される(移動体1の位置及び姿勢の推定値としての推定位置姿勢が逐次決定される)。また、このアルゴリズムでは、当該推定処理の実行過程で、移動体1の推定位置姿勢の確からしさに関連する状態量Aとしての共分散(詳しくは分散共分散)が生成される。
そして、第1姿勢推定処理部21は、上記の如くAMCLのアルゴリズムにより推定した移動体1の位置及び姿勢のうちの姿勢を第1推定姿勢として逐次出力すると共に、該第1推定姿勢の推定時の時刻である推定時刻を該第1推定姿勢と共に出力する。さらに、第1姿勢推定処理部21は、第1推定姿勢の確からしさ(信頼度)に関連する状態量Aとして、上記共分散(分散共分散)を該第1推定姿勢と共に出力する。
第2姿勢推定処理部22には、カメラ7の検出情報としての撮像画像(移動体1の上方の天井の撮像画像)が入力される。なお、本実施形態では、カメラ7はステレオカメラであるので、第2姿勢推定処理部22に入力されるカメラ7の検出情報(撮像画像)はステレオ画像(一対の撮像画像)である。ただし、カメラ7は、ステレオカメラに限らず、単眼カメラであってもよい。
そして、第2姿勢推定処理部22は、入力された撮像画像から、姿勢推定用の所定のアルゴリズムにより、移動体1の姿勢を逐次推定する。本実施形態では、第2姿勢推定処理部22は、姿勢推定用のアルゴリズムとして、移動体1の姿勢と併せて、移動体1の位置(自己位置)をも推定し得るアルゴリズムを使用する。具体的には、第2姿勢推定処理部22では、入力された撮像画像からの特徴点を検出し、該特徴点と、過去に入力された撮像画像から検出された特徴点とのマッチングとを行うアルゴリズム、例えばORB_SLAMという公知の手法のアルゴリズムが使用される。
このORB_SLAMのアルゴリズムでは、次のような処理によって、移動体1の位置及び姿勢が逐次推定される。すなわち、移動体1の初期位置及び初期姿勢を設定した上で、カメラ7による撮像画像(ステレオ画像)が第2姿勢推定処理部22に逐次入力される。そして、入力された撮像画像毎に、該撮像画像からORB特徴点を検出する処理が逐次実行される。なお、移動体1の初期位置及び初期姿勢は、例えば、LRF6の検出情報に基づいて設定され得る。
そして、新たに入力された撮像画像(時刻tの撮像画像)から検出されたORB特徴点と、一つ前に入力された過去の撮像画像(時刻t-Δtの撮像画像)から検出されたORB特徴点とが比較され、ORB特徴点同士のマッチングが行われる。このマッチングでは、特徴量の差の大きさ(絶対値)が所定の閾値以下となるORB特徴点同士が互いに同じORB特徴点(互いに対応するORB特徴点)であると判定される。
そして、当該マッチングに基づいて、上記二つの時刻t,t-Δtの間の期間での移動体1の移動量及び移動方向が推定される。さらに、この移動量及び移動方向の推定値と、時刻t-Δtでの移動体1の位置及び姿勢の推定値とから、時刻tでの移動体1の位置及び姿勢が決定される。なお、ORB_SLAMのアルゴリズムにより求める移動体1の位置及び姿勢の推定値は、例えば、第2姿勢推定処理部22に入力される撮像画像のフレーム数が所定数に達する毎に、LRF6の検出情報に基づいて認識される移動体1の位置及び姿勢にリセットしてもよい。
ORB_SLAMのアルゴリズムでは、以上の如き処理を逐次実行することで、移動体1の位置及び姿勢が逐次推定される(移動体1の位置及び姿勢の推定値としての推定位置姿勢が逐次決定される)。また、このアルゴリズムでは、当該推定処理の実行過程で、推定位置姿勢の確からしさに関連する状態量Bとして、移動体1の推定速度・角速度(並進速度及び角速度の推定値)と、検出されたORB特徴点の個数(総数)及びマッチング個数(前記マッチングにより互いに同じであると判定されたORB特徴点の個数)と、誤差関数の誤差値(前記マッチングにおける特徴量の差)と、推定状態(移動体1の推定速度・角速度の推定精度の高低度合い)とが生成される。
そして、第2姿勢推定処理部22は、上記の如くORB_SLAMのアルゴリズムにより推定した移動体1の位置及び姿勢のうちの姿勢を第2推定姿勢として逐次出力すると共に、該第2推定姿勢の推定時の時刻である推定時刻を逐次出力する。さらに第2姿勢推定処理部22は、第2推定姿勢の確からしさ(信頼度)に関連する状態量Bとして、移動体1の推定速度・角速度(並進速度及び角速度の推定値)と、検出されたORB特徴点の個数及びマッチング個数と、誤差関数の誤差値(前記マッチングにおける特徴量の差)と、推定状態(移動体1の推定速度・角速度の推定精度の高低度合い)とを推定姿勢と共に出力する。なお、ORB特徴点の個数及びマッチング個数の代わりに、ORB特徴点の個数(総数)に対するマッチング個数の割合を出力するようにしてもよい。
第3姿勢推定処理部23には、磁気センサ11、加速度センサ12及び角速度センサ13の検出情報が入力される。そして、第3姿勢推定処理部23は、入力された検出情報(地磁気、加速度及び角速度の検出情報)から、姿勢推定用の所定のアルゴリズムにより、移動体1の姿勢を逐次推定する(移動体1の姿勢の推定値としての推定姿勢を逐次決定する)。
本実施形態では、第3姿勢推定処理部23は、姿勢推定用のアルゴリズムとして、Madgwickフィルタという公知の手法のアルゴリズムを使用する。このMadgwickフィルタでは、磁気センサ11により検出される地磁気と、加速度センサ12により検出される加速度(並進加速度)と、該地磁気及び加速度のそれぞれの基準値と、移動体1の姿勢の推定値との関数として表される所定の損失関数Lの値を最小化し得るように、移動体1の姿勢が勾配法によって逐次推定される。この場合、Madgwickフィルタの処理では、移動体1の姿勢は、クオータニオンの形態で表される。該クオータニオンが本発明における姿勢指標値に相当するものである。
以降の説明では、任意の変数名Qの先頭に「↑」を付した参照符号↑Qは、複数の成分から成るベクトル(縦ベクトル)を表し、任意の変数名Qの先頭に「#」を付した参照符号#Qは行列を表す。また、任意のベクトル↑Q又は行列#Qの変数名の右上に添え字「T」を付したもの(↑QT又は#QT)は、該ベクトル↑Q又は行列#Qの転置を表す。
また、4成分のベクトルとして表される任意のクオータニオン↑Qに対して、添え字「_hat」を付加したもの(↑Q_hat)は、↑Qを正規化したクオータニオン(↑Qの各成分を↑Qの絶対値|↑Q|で除算してなるクオータニオン)を意味する。また、任意のクオータニオン↑Qの右上に添え字「*」を付したもの(↑Q*)は、↑Qの共役クオータニオンを意味する。
また、スカラーと、スカラー又はベクトル又は行列との乗算、あるいは、ベクトル同士のスカラー積(内積)、あるいは、ベクトルと行列との乗算、あるいは、行列同士の乗算を表す算術記号として「・」を使用し、クオータニオン同士の乗算を表す算術記号として「*」を使用する。
第3姿勢推定処理部23が、Madgwickフィルタの処理で用いる損失関数Lは、以下に示す式(1a)~(1c)により定義される関数↑f、↑fg、↑fbを用いて、式(1)により定義される関数、すなわち、関数↑f(=[↑fbT, ↑fbT]T)のノルム(絶対値)の2乗値(換言すれば、↑fのスカラー積(=↑fT・↑f))として定義される関数である。
L=|↑f|2=↑fT・↑f ……(1)
ただし、
↑f=[↑fgT, ↑fbT]T ……(1a)
↑fg=↑q(S/E)_hat**↑g(E)*↑q(S/E)_hat-↑a(S)
……(1b)
↑fb=↑q(S/E)_hat**↑b(E)*↑q(S/E)_hat-↑m(S)
……(1c)
ただし、
↑f=[↑fgT, ↑fbT]T ……(1a)
↑fg=↑q(S/E)_hat**↑g(E)*↑q(S/E)_hat-↑a(S)
……(1b)
↑fb=↑q(S/E)_hat**↑b(E)*↑q(S/E)_hat-↑m(S)
……(1c)
ここで、式(1b),(1c)に関して説明すると、↑q(S/E)_hatは、移動体1の移動環境に設定されたグローバル座標系(地表座標系)Eから、センサユニット10に対して設定されたセンサ座標系Sへの姿勢の回転を表す正規化されたクオータニオン(グローバル座標系Eで見たセンサ座標系Sの姿勢を表す正規化されたクオータニオン)、↑q(S/E)_hat*は、↑q(S/E)_hatの共役クオータニオンである。該クオータニオン↑q(S/E)_hatは、換言すれば、グローバル座標系Eで見た移動体1の姿勢を表す姿勢指標値としてのクオータニオンであり、以降、姿勢クオータニオン↑q(S/E)_hatという。
この場合、本実施形態では、上記グローバル座標系Eは、例えば南北方向をX軸方向、東西方向をY軸方向、上下方向(鉛直方向)をZ軸方向とする3軸直交座標系であり、上記センサ座標系Sは、X軸、Y軸及びZ軸の各座標軸の方向が磁気センサ11、加速度センサ12及び角速度センサ13に対して固定された方向を有する3軸直交座標系である。そして、磁気センサ11、加速度センサ12及び角速度センサ13によりそれぞれ検出される地磁気、加速度及び角速度はセンサ座標系Sで見た検出値である。
また、式(1b)における↑g(E)_hatは、グローバル座標系Eで見た重力加速度を表す正規化されたクオータニオン(=[0, gx, gy, gz]T)、↑a(S)_hatは、センサ座標系Sで見た加速度の検出値(加速度センサ12による検出値)を表す正規化されたクオータニオン(=[0, ax, ay, az]T)である。
ここで、↑g(E)_hatの第2成分(=gx)、第3成分(=gy)、及び第4成分(=gz)は、それぞれ、グローバル座標系Eで見た重力加速度(正規化された重力加速度)のX軸方向成分、Y軸方向成分、Z軸方向成分を表し、↑a(S)_hatの第2成分(=ax)、第3成分(=ay)、及び第4成分(=az)は、それぞれ、センサ座標系Sで見た加速度の検出値(加速度センサ12による検出値)を正規化したもののX軸方向成分、Y軸方向成分、Z軸方向成分を表している。この場合、上記の如く各座標軸の方向が設定されたグローバル座標系Eで見た重力加速度は、X軸方向の成分とY軸方向の成分とがゼロになるベクトルであるので、↑g(E)_hat=[0, 0, 0, 1]Tである。
また、式(1c)における↑b(E)_hatは、グローバル座標系Eで見た地磁気(一定値)を表す正規化されたクオータニオン(=[0, bx, by, bz]T)、↑m(S)_hatは、センサ座標系Sで見た地磁気の検出値(磁気センサ11による検出値)を表す正規化されたクオータニオン(=[0, mx, my, mz]T)である。
ここで、↑b(E)_hatの第2成分(=bx)、第3成分(=by)、及び第4成分(=bz)は、それぞれ、グローバル座標系Eで見た地磁気(正規化された地磁気)のX軸方向成分、Y軸方向成分、Z軸方向成分を表し、↑m(S)_hatの第2成分(=mx)、第3成分(=my)、及び第4成分(=mz)は、それぞれ、センサ座標系Sで見た地磁気の検出値(磁気センサ11による検出値)を正規化したもののX軸方向成分、Y軸方向成分、Z軸方向成分を表している。この場合、上記の如く各座標軸の方向が設定されたグローバル座標系Eで見た地磁気は、Y軸方向の成分がゼロとなるベクトルであるので、↑b(E)_hat=[0, bx, 0, bz]Tである。
式(1b)において、右辺の第1項は、グローバル座標系Eで見た重力加速度のベクトルをセンサ座標系Sに変換したベクトルを表すクオータニオン(正規化したクオータニオン)に相当する。そして、該クオータニオンは、移動体1に発生する加速度の定常状態での基準値(センサ座標系Sで見た基準値)としての意味を持つ。従って、式(1b)により定義される関数↑fgは、移動体1に発生する加速度の基準値と検出値との偏差(基準値に対する検出値の残差)を表すクオータニオンである。
また、式(1c)において、右辺の第1項は、グローバル座標系Eで見た地磁気(一定値の地磁気)のベクトルをセンサ座標系Sに変換したベクトルを表すクオータニオン(正規化したクオータニオン)に相当する。そして、該クオータニオンは、移動体1の存在位置での定常状態での地磁気の基準値(センサ座標系Sで見た基準値)としての意味を持つ。従って、式(1c)により定義される関数↑fbは、移動体1の存在位置での地磁気の基準値と検出値との偏差(基準値に対する検出値の残差)を表すクオータニオンである。
本実施形態では、第3姿勢推定処理部23でのMdgwickフィルタの処理では、上記関数↑fg、↑fbから式(1a)及び(1)により規定される損失関数Lを用い、この損失関数Lの値を最小化し得るように、前記姿勢クオータニオンq(S/E)_hatが推定される。このため、加速度センサ12で検出される加速度の基準値に対する残差と、磁気センサ11で検出される地磁気の基準値に対する残差との両方を最小化し得るように、姿勢クオータニオンq(S/E)_hatが推定される。
補足すると、関数↑fgは、加速度の検出値を表すクオータニオン↑a(S)をグローバル座標系Eで見たクオータニオンに変換したものと、グローバル座標系Eで見た重力加速度を示すクオータニオンとの偏差を表す関数として定義してもよい。同様に、関数↑fbは、地磁気の検出値を表すクオータニオン↑m(S)をグローバル座標系Eで見たクオータニオンに変換したものと、グローバル座標系Eで見た一定値の地磁気との偏差を表す関数として定義してもよい。
第3姿勢推定処理部23によるMadwickフィルタの処理では、上記損失関数Lを最小化し得るように姿勢クオータニオン↑q(E/S)_hatを推定するための手法として、勾配法の手法が用いられる。この場合、第3姿勢推定処理部23は、以下に示す式(2-1)の逐次演算により、正規化前の姿勢クオータニオンq(E/S)を逐次推定し、この姿勢クオータニオンq(E/S)から、式(2-2)により正規化された姿勢クオータニオンq(E/S)_hatの推定値を算出する。
↑q(S/E) (t)=↑q(S/E) (t-1)+↑q(S/E) _dot(t)・Δt
……(2-1)
↑q(S/E)_hat(t)=↑q(S/E)(t)/|↑q(S/E)(t)|
……(2-2)
ただし、
↑q(S/E)_ dot(t)=↑q(S/E)_ω_dot(t)-β・((∇L)T/|∇L|)
……(2a)
↑q(S/E)_ω_dot(t)=(1/2)・↑q(S/E) (t-1)・ω(S)(t)
……(2b)
……(2-1)
↑q(S/E)_hat(t)=↑q(S/E)(t)/|↑q(S/E)(t)|
……(2-2)
ただし、
↑q(S/E)_ dot(t)=↑q(S/E)_ω_dot(t)-β・((∇L)T/|∇L|)
……(2a)
↑q(S/E)_ω_dot(t)=(1/2)・↑q(S/E) (t-1)・ω(S)(t)
……(2b)
ここで、上記の式において、姿勢クオータニオンq(E/S)等の変数に付加した (t)と(t-1)とは、q(E/S)の推定値を算出する各時刻(離散時間系での時刻)とその1つ前の時刻とを表し、Δtはq(E/S)の推定を行う演算処理周期(時刻t,t-1の間の時間幅)を表している。
また、式(2-1)の右辺の↑q(S/E)_dotは、姿勢クオータニオン↑q(S/E)の微分値(時間的変化率)である。従って、式(2-1)は、姿勢クオータニオン↑q(S/E)の微分値↑q(S/E) _dot(以降、姿勢変化クオータニオン↑q(S/E)_dotという)を逐次積分することで、姿勢クオータニオン↑q(S/E)を逐次算出する演算を表している。
上記姿勢変化クオータニオン↑q(S/E)_dotは、上記の式(2a)により算出される。この場合、式(2a)における↑q(S/E)_ω_dotは、角速度センサ13により検出される角速度から推定される姿勢変化クオータニオンを表している。そして、各時刻tでの姿勢変化クオータニオン↑q(S/E)_ω_dot(t)は、該時刻tでの角速度の検出値を表すクオータニオン↑ω(s)(t)(=[0, ωx, ωy, ωz]T)と、時刻t-1で求められた姿勢クオータニオン↑q(S/E)_dotの推定値とから、上記の式(2b)により算出される。なお、↑ω(s)(t)の第2成分(=ωx)、第3成分(=ωy)及び第4成分(=ωz)は、それぞれ、センサ座標系Sで見た角速度の検出値のX軸周り方向の成分、Y軸周り方向の成分、Z軸周り方向の成分である。
また、式(2a)におけるβは、所定値の係数、∇Lは、正規化された姿勢クオータニオン↑q(S/E)_hatに対する損失関数Lの勾配、すなわち、次式(3)により定義されるクオータニオンである。なお、q1,q2,q3,q4は、それぞれ、姿勢クオータニオン↑q(S/E)_hatの第1成分、第2成分、第3成分、第4成分を表す変数である。以降、∇Lを勾配クオータニオンということがある。なお、本実施形態の説明では、∇Lは行ベクトルでる。
∇L=[∂L/∂q1,∂L/∂q2,∂L/∂q3,∂L/∂q4]
……(3)
……(3)
ここで、前記式(1)、(1a)~(1c)により、∇Lは、次式(4)に書き換えることができる。
∇L=2・(↑fgT・#Jg+↑fbT・#Jb)……(4)
ただし、
#Jg=∇↑fg
=[∂↑fg/∂q1, ∂↑fg/∂q2, ∂↑fg/∂q3, ∂↑fg/∂q4]
……(4a)
#Jb=∇↑fb
=[∂↑fb/∂q1, ∂↑fb/∂q2, ∂↑fb/∂q3, ∂↑fb/∂q4]
……(4b)
ただし、
#Jg=∇↑fg
=[∂↑fg/∂q1, ∂↑fg/∂q2, ∂↑fg/∂q3, ∂↑fg/∂q4]
……(4a)
#Jb=∇↑fb
=[∂↑fb/∂q1, ∂↑fb/∂q2, ∂↑fb/∂q3, ∂↑fb/∂q4]
……(4b)
上記の式(4)における#Jg及び#Jbは、それぞれ、上記の式(4a),(4b)により定義される行列である。これらの行列#Jg及び#Jbは、所謂、ヤコビアンである。なお、式(4a)における∂↑fg/∂qi(i=1,2,3,4)は、関数↑fgの各成分の偏微分値(姿勢クオータニオン↑q(S/E)_hatの第i成分qiに対する偏微分値)を並べた縦ベクトルである。同様に、式(4b)における∂↑fb/∂qi(i=1,2,3,4)は、関数↑fbの各成分の偏微分値(姿勢クオータニオン↑q(S/E)_hatの第i成分に対する偏微分値)を並べた縦ベクトルである。
補足すると、クオータニオンとしての関数↑fg、↑fbのそれぞれの第1成分はゼロであるので、行列#Jg,#Jbのそれぞれの第1行はゼロベクトルになる。従って、関数↑fg、↑fbのそれぞれを第2成分、第3成分及び第4成分だけを抽出してなる3成分のベクトルとして扱うと共に、行列#Jg,#Jbのそれぞれを第2行、第3行及び第4行だけを抽出してなる3行4列の行列として扱うことも可能である。
第3姿勢推定処理部23は、上記の式(2-1),(2-2),(2a),(2b),(4),(4a),(4b)に基づいて、正規化された姿勢クオータニオン↑q(S/E)_hatの推定値を算出する処理(Madgwickフィルタの処理)を所定の演算処理周期で逐次実行する。
この場合、各演算処理周期において、姿勢クオータニオン↑q(S/E)_hatの推定値の前回値(今回の演算処理の時刻tの1つ前の演算処理の時刻t-1で求めた推定値↑q(S/E)_hat(t-1))と、加速度センサ12による加速度の検出値の今回値(今回の演算処理の時刻tでの検出値)を表すクオータニオン↑a(S)_hat(t)と、グローバル座標系Eでの重力加速度(加速度の基準値)を表すクオータニオン↑g(E)_hatと、磁気センサ11による地磁気の検出値の今回値を表すクオータニオン↑m(S)_hat(t)と、グローバル座標系Eでの地磁気(地磁気の基準値)を表すクオータニオン↑b(E)_hatとから、姿勢クオータニオン↑q(S/E)_hatに対する損失関数Lの勾配を表す勾配クオータニオン∇L(今回値)が算出される。
より具体的には、本実施形態では、前記したように↑g(E)_hat=[0, 0, 0, 1]T、↑b(E)_hat=[0, bx, 0, bz]Tであるので、姿勢クオータニオン↑q(S/E)_hatを[q1, q2, q3, q4]T、加速度の検出値を表すクオータニオン↑a(S)_hatを[0, ax, ay, az]T、地磁気の検出値を表すクオータニオン↑m(S)_hatを[0, mx, my, mz]Tと表記すると、前記関数↑fg,↑fbは、前記式(1b)、(1c)に基づいて、次式(5a),(5b)により表される。さらに、前記行列#Jg,#Jbは、前記式(4a),(4b)に基づいて、次式(6a),(6b)により表される。
従って、姿勢クオータニオン↑q(S/E)_hatの推定値(前回値)と、加速度の検出値(今回値)を表すクオータニオン↑a(S)_hatとから式(5a)に基づいて、関数↑fgの値を算出し得る。同様に、姿勢クオータニオン↑q(S/E)_hatの推定値(前回値)と、地磁気の検出値(今回値)を表すクオータニオン↑m(S)_hatと、グローバル座標系Eでの地磁気を表すクオータニオン↑b(E)_hatとから式(5b)に基づいて、関数↑fbの値を算出し得る。
さらに、姿勢クオータニオン↑q(S/E)_hatの推定値(前回値)から式(6a)に基づいて、行列#Jgを算出し得る。また、姿勢クオータニオン↑q(S/E)_hatの推定値(前回値)と、グローバル座標系Eでの地磁気を表すクオータニオン↑b(E)_hatとから式(6b)に基づいて、行列#Jbを算出し得る。
そして、上記の如く算出された↑fg、#Jg、↑fb、#Jbから、前記式(4)に基づいて、勾配クオータニオン∇Lを算出することができる。なお、式(4)により算出される勾配クオータニオン∇Lは、行ベクトルである。
また、角速度センサ13による角速度の検出値(今回値)を表すクオータニオン↑ω(S)から前記式(2b)に基づいて、前記式(2a)の演算に使用しる姿勢変化クオータニオン↑q(S/E)_ω_dotが算出される。そして、この↑q(S/E)_ω_dotと、上記の如く算出される勾配クオータニオン∇Lとから、前記式(2a)の演算により、前記式(2-1)の演算に使用する姿勢変化クオータニオン↑q(S/E)_ω_dotが算出される。
さらに、この姿勢変化クオータニオン↑q(S/E)_ω_dotと、姿勢クオータニオン↑q(S/E)の推定値の前回値とから、前記式(2-1)の演算を行うことで算出される姿勢クオータニオン↑q(S/E)の今回値を、前記式(2-2)により正規化することで、正規化された姿勢クオータニオン↑q(S/E)_hatの推定値(今回値)が新たに算出される。
第3姿勢推定処理部23は、以上の如く、Madgwickフィルタの演算処理を逐次行うことで、グローバル座標系Eで見た移動体1の姿勢を表す指標値としての姿勢クオータニオン↑q(S/E)_hatを逐次推定する。そして、第3姿勢推定処理部23は、該姿勢クオータニオン↑q(S/E)_hatにより示される移動体1の姿勢の推定値を第3推定姿勢として逐次出力するとと共に、その推定時刻を逐次出力する。
また、第3姿勢推定処理部23は、上記の如く姿勢クオータニオン↑q(S/E)_hatを逐次推定することに加えて、その推定値(第3推定姿勢)の確からしさに関連する状態量として、前記損失関数Lの二階微分(換言すれば、損失関数Lの勾配クオータニオン∇Lの勾配)を表すヘッセ行列#Hの固有値を逐次算出する。
このヘッセ行列#Hは、次式(7)により表される。
なお、上記のただし書きに記載した通り、本明細書では、×dpはベクトル同士の直積を表す算術記号であり、∇は上記の式(7a)により表される演算子ベクトル(ここでは行ベクトル)である。また、∇Lは、前記式(3)により定義されるベクトル(行ベクトル)である。補足すると、∇を転置した縦ベクトル(=∇T)を1列の行列、∇Lを1行の行列とみなしたとき、∇×dp∇Lは、1列の行列∇Tと、1行の行列∇Lとの積(=∇T・∇L)に一致する。
ここで、上記の式(7)に、前記式(4)を適用すると、次式(8)が得られる。
従って、損失関数Lに関するヘッセ行列#Hは、加速度に関連する行列として上記の式(8a)により定義されるヘッセ行列#Hgと、地磁気に関連する行列として上記の式(8b)により定義されるヘッセ行列#Hbとの総和の行列として表される。以降、#Hgを第1ヘッセ行列、#Hbを第2ヘッセ行列という。
そして、本実施形態では、第3姿勢推定処理部23は、上記第1ヘッセ行列#Hgの固有値と、第2ヘッセ行列#Hbの固有値とを前記したMadgwickフィルタの処理により逐次推定する姿勢クオータニオン↑q(S?E)_hatの確からしさに関連する状態量Cとして逐次算出する。
この場合、第1ヘッセ行列#Hgは、姿勢クオータニオン↑q(S/E)の推定値を算出する過程で前記した如く算出される関数↑fg及び行列#Jgの値と、前記式(6a)を用いて算出し得る∂(#Jg)/∂qi(i=1,2,3,4)の値(定数行列)とから、式(8a)に従って求めることができる。
同様に、第2ヘッセ行列#Hbは、姿勢クオータニオン↑q(S/E)の推定値を算出する過程で前記した如く算出される関数↑fb及び行列#Jbの値と、前記式(6b)を用いて算出し得る∂(#Jb)/∂qi(i=1,2,3,4)の値(定数行列)とから、式(8b)に従って求めることができる。
そして、第3姿勢推定処理部23は、このように求められる第1ヘッセ行列#Hg及び第2ヘッセ行列#Hbから、それらの固有値を算出し、該固有値を第3推定姿勢の確からしさに関連する状態量Cとして、移動体1の第3推定姿勢と共に逐次出力する。
ここで、前記第3姿勢推定処理部23で求められる第3推定姿勢と、第1ヘッセ行列#Hg及び第2ヘッセ行列#Hbのそれぞれの固有値との関係に関する検証データに関して図3及び図4を参照して補足しておく。
図3の上段のグラフは、移動体1の第3推定姿勢のうちの例えばヨー方向(グローバル座標系EのZ軸周りの方向)の姿勢角の推定値の誤差の経時変化の実測データを例示するグラフ、下段のグラフは、第1ヘッセ行列#Hgの固有値の経時変化の実測データを例示するグラフである。この場合、ヨー方向の姿勢角の誤差が増加しており、それに伴い、第1ヘッセ行列#Hgの固有値は、その変動が拡大していくように変化する傾向があることが判る。
また、図4の上段のグラフは、移動体1のヨー方向の姿勢角の推定値の誤差の経時変化の実測データを例示するグラフ、下段のグラフは、第2ヘッセ行列#Hbの固有値の経時変化の実測データを例示するグラフである。この場合、ヨー方向の姿勢角の推定値の誤差の変動が大きい状況で、第2ヘッセ行列#Hbの固有値の変動も大きくなる傾向があることが判る。
このように、第1ヘッセ行列#Hg及び第2ヘッセ行列#Hbのそれぞれの固有値は、第3姿勢推定処理部23がMadgwickフィルタの処理を用いて推定する移動体1の姿勢の確からしさと相関性を有することが判る。
図2に戻って、第1~第3姿勢推定処理部21~23からそれぞれ出力される前記状態量A,B,Cは、重み係数学習処理部24に入力される。この重み係数学習処理部24は、本実施形態では、ニューラルネットワークにより構成される。そして、このニューラルネットワークは、前記状態量A,B,Cから構成される特徴ベクトルをマルチモーダル情報として用いるマルチモーダル学習があらかじめ実施されている。
このマルチモーダル学習は、より詳しくは、種々様々な状態量A,B,Cから構成される特徴ベクトルから、第1~第3姿勢推定処理部21~23のそれぞれのアルゴリズムによる移動体1の姿勢の推定処理が、他のアルゴリズムに比してどの程度適切になされているかの度合いに相当する重み係数(第1~第3姿勢推定処理部21~23から出力される推定姿勢のそれぞれに対応する重み係数)を生成する学習である。
重み係数学習処理部24のニューラルネットワークは、このようなマルチモーダル学習があらかじめ実施されている。このため、第1~第3姿勢推定処理部21~23のそれぞれから状態量A,B,Cが入力された重み係数学習処理部24は、該状態量A,B,Cにより構成される特徴ベクトルから、第1~第3姿勢推定処理部21~23のそれぞれに対応する重み係数をニューラルネットワークにより生成して出力する。
この場合、当該ニューラルネットワークは、基本的には、第1~第3姿勢推定処理部21~23のそれぞれが出力する移動体1の推定姿勢のそれぞれの確からしさがより高いものほど、重み係数が大きな値となるように第1~第3姿勢推定処理部21~23のそれぞれに対応する重み係数を生成して出力する。
重み係数学習処理部24から出力される第1~第3姿勢推定処理部21~23のそれぞれに対応する重み係数は、姿勢特定処理部25に入力される。また、該姿勢特定処理部25には、第1~第3姿勢推定処理部21~23のそれぞれから、移動体1の推定姿勢及び推定時刻が入力される。
そして、姿勢特定処理部25は、第1~第3姿勢推定処理部21~23のそれぞれの互いに同一時刻での推定位置姿勢を、入力された重み係数に応じて合成してなる姿勢を、移動体1の姿勢として特定する。すなわち、第1~第3姿勢推定処理部21~23のそれぞれの推定姿勢に対しそれぞれに対応する重み係数を乗じたものを合成してなる姿勢が移動体1の姿勢として特定される。なお、このとき各重み係数の和は1である。
本実施形態では、姿勢推定処理装置20は、以上説明した如く移動体1の姿勢を逐次特定する。この場合、第1~第3姿勢推定処理部21~23のそれぞれにより推定された姿勢を、重み係数学習処理部24により第1~第3姿勢推定処理部21~23のそれぞれ毎の状態量A,B,Cに応じて決定される重み係数により合成することによって移動体1の姿勢が特定される。
そして、この場合、重み係数学習処理部24は、第1~第3姿勢推定処理部21~23のそれぞれ毎の状態量A,B,Cを入力情報とするものであるので、移動体1の種々様々な移動環境で、状態量A,B,Cに応じて出力すべき重み係数を事前に学習しておくことができる。そのため、姿勢推定処理装置20は、移動体1の種々様々な移動環境で、移動体1の姿勢を高い信頼性で推定(特定)することができる。
なお、本発明は以上説明した実施形態に限定されるものではなく、他の実施形態を採用することもできる。以下に、他の実施形態をいくつか例示する。
前記実施形態では、Madgwickフィルタの処理により移動体1の姿勢を推定する第3姿勢推定処理部23は、該姿勢の推定値としての第3推定姿勢の確からしさに関連する状態量Cの要素として、加速度に関連する第1ヘッセ行列#Hgの固有値と、地磁気に関連する第1ヘッセ行列#Hgの固有値との両方を出力するようにしたが、いずれか一方の固有値だけを状態量Cの要素として出力してもよい。
また、第3姿勢推定処理部23の処理(Madgwickフィルタの処理)では、損失関数Lは、前記式(1)により定義される関数に限らず、例えば、加速度に関連する前記関数↑fgのノルム(絶対値)の2乗値として表される関数(=|↑fg|2)、あるいは、地磁気に関連する前記関数↑fbgのノルム(絶対値)の2乗値として表される関数(=|↑fb|2)を、損失関数Lとして用いてもよい。
損失関数Lとして|↑fg|2を使用する場合には、磁気センサ11を省略できる。そして、この場合、姿勢クオータニオン↑q(S/E)を逐次推定する処理では、損失関数Lの勾配クオータニオン∇Lは、前記式(4)の右辺の括弧内の第2項を除去した式に基づいて算出することができる。
また、損失関数Lとして|↑fb|2を使用する場合には、加速度センサ12を省略できる。そして、この場合、姿勢クオータニオン↑q(S/E)を逐次推定する処理では、損失関数Lの勾配クオータニオン∇Lは、前記式(4)の右辺の括弧内の第1項を除去した式に基づいて算出することができる。
また、第3姿勢推定処理部23が求める第3推定姿勢の確からしさに関連する状態量Cは、第1ヘッセ行列#Hgの固有値と、第2ヘッセ行列#Hbの固有値との両方又はいずれか一方に加えて、他の要素、例えば第3推定姿勢の姿勢角の大きさ、あるいは、該姿勢角の時間的変化率(角速度)を含んでいてもよい。
また、前記実施形態では、第1~第3姿勢推定処理部21~23の3種類の姿勢推定処理部を備える姿勢推定処理装置20を例示した。ただし、姿勢推定処理装置20は、例えば、第1及び第2姿勢推定処理部21,22のうちのいずれか一方を備えないものであってもよい。あるいは、姿勢推定処理装置20は、さらに多くの姿勢推定処理部を備えていてもよい。
また、前記実施形態では、重み係数学習処理部24として、マルチモーダル学習を行うニューラルネットワークを例示した。ただし、重み係数学習処理部24として、例えば、LSTM(Long short-term memory)等の再帰型ニューラルネットワーク(RNN)等を使用してもよい。
さらに、前記実施形態では、第3姿勢推定処理部23を含む複数の姿勢推定処理部を含むシステムを例示した。ただし、例えば第1及び第2姿勢推定処理部21,22を備えずに、第3姿勢推定処理部23から出力される第3推定姿勢と状態量Cとに応じて移動体1の移動制御を行うようにしてもよい。この場合、状態量Cにより示される第3推定姿勢の確からしさ(信頼度)が低い場合に、該確からしさが高い場合よりも、移動体1の移動を制限する等の制御態様を採用し得る。
また、前記実施形態では、移動体として、車輪型の移動体1を例示した。ただし、本発明の適用対象の移動体は、車輪型の移動体に限らず、例えば、脚式の移動体、倒立振子型の移動体等であってよい。
1…移動体、5…オドメトリ用センサ、6…レーザ・レンジ・ファインダ(センサ)、7…カメラ(センサ)、11…磁気センサ、12…加速度センサ、13…角速度センサ。
Claims (3)
- 移動体に発生する角速度の検出値と、該移動体に発生する加速度及び該移動体の存在位置での地磁気のうちの少なくとも一方からなる検出対象量の検出値と用いて該移動体の姿勢を推定する方法であって、
前記角速度の検出値と前記検出対象量の検出値とからMadgwickフィルタにより、前記検出対象量の検出値と該検出対象量の基準値との偏差の大きさを表す所定の損失関数を最小化するように、前記移動体の姿勢の推定値を表す姿勢指標値を逐次求める第1ステップと、
前記損失関数の前記姿勢指標値に対する2階偏微分値を成分として構成されるヘッセ行列を求め、当該求めたヘッセ行列の固有値を前記姿勢指標値の確からしさに関連する状態量として生成する第2ステップとを備えることを特徴とする移動体の姿勢推定方法。 - 請求項1記載の移動体の姿勢推定方法において、
前記検出対象量は、前記加速度及び前記地磁気の両方から成り、前記ヘッセ行列は、前記加速度に関連する第1ヘッセ行列と前記地磁気に関連する第2ヘッセ行列との和として表される行列であり、前記第2ステップで生成される状態量は、前記第1ヘッセ行列の固有値と前記第2ヘッセ行列の固有値とのうちの少なくとも一方を含むことを特徴とする移動体の姿勢推定方法。 - 請求項1又は2記載の移動体の姿勢推定方法において、
前記角速度及び前記検出対象量をそれぞれ検出可能なセンサを含む複数のセンサのうちの1つ以上のセンサの検出値を用いて、前記Madgwickフィルタと異なる1つ以上のアルゴリズムにより前記移動体の姿勢を逐次推定する処理を各アルゴリズ毎に実行する第3ステップと、
前記各アルゴリズムにより得られた前記移動体の姿勢の推定値の確からしさに関連する状態量を当該各アルゴリズム毎に生成する第4ステップと、
前記Madgwickフィルタに対応して前記第2ステップで生成された状態量と前記各アルゴリズムに対応して前記第4ステップで生成された状態量とを学習済のニューラルネットワークに入力し、当該入力された状態量から該ニューラルネットワークにより前記Madgwickフィルタ及び前記各アルゴリズムのそれぞれ毎の重み係数を決定する第5ステップと、
前記姿勢指標値により示される姿勢の推定値と、前記各アルゴリズムのそれぞれにより得られた姿勢の推定値とを、前記決定された重み係数により合成して得られる姿勢を、前記移動体の姿勢として特定する第6ステップとを備えることを特徴とする移動体の姿勢推定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020150872A JP2022045269A (ja) | 2020-09-08 | 2020-09-08 | 移動体の姿勢推定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020150872A JP2022045269A (ja) | 2020-09-08 | 2020-09-08 | 移動体の姿勢推定方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022045269A true JP2022045269A (ja) | 2022-03-18 |
Family
ID=80681981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020150872A Pending JP2022045269A (ja) | 2020-09-08 | 2020-09-08 | 移動体の姿勢推定方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022045269A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102567778B1 (ko) * | 2022-10-11 | 2023-08-17 | (주)아이하트 | 이동체의 속성에 따라 보정된 센서 데이터를 이용한 이동체의 위험발생 관제 시스템 및 방법 |
-
2020
- 2020-09-08 JP JP2020150872A patent/JP2022045269A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102567778B1 (ko) * | 2022-10-11 | 2023-08-17 | (주)아이하트 | 이동체의 속성에 따라 보정된 센서 데이터를 이용한 이동체의 위험발생 관제 시스템 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Madgwick | An efficient orientation filter for inertial and inertial/magnetic sensor arrays | |
Valenti et al. | A linear Kalman filter for MARG orientation estimation using the algebraic quaternion algorithm | |
Ludwig et al. | Comparison of Euler estimate using extended Kalman filter, Madgwick and Mahony on quadcopter flight data | |
Madgwick et al. | Estimation of IMU and MARG orientation using a gradient descent algorithm | |
US11592512B2 (en) | Method for calibrating a magnetometer | |
Weiss et al. | Real-time metric state estimation for modular vision-inertial systems | |
Sweeney et al. | Solving for relative pose with a partially known rotation is a quadratic eigenvalue problem | |
Guo et al. | Novel MARG-sensor orientation estimation algorithm using fast Kalman filter | |
US20080281555A1 (en) | Method and device for detecting a substantially invariant rotation axis | |
Kang et al. | Unscented Kalman filtering for simultaneous estimation of attitude and gyroscope bias | |
Lee et al. | A fast quaternion-based orientation optimizer via virtual rotation for human motion tracking | |
Suh et al. | Quaternion-based indirect Kalman filter discarding pitch and roll information contained in magnetic sensors | |
JP7034264B2 (ja) | 自己位置推定方法 | |
Kopniak et al. | Natural interface for robotic arm controlling based on inertial motion capture | |
Ludwig | Optimization of control parameter for filter algorithms for attitude and heading reference systems | |
Dong et al. | Calibration of low cost IMU’s inertial sensors for improved attitude estimation | |
Al-Fahoum et al. | Design of a modified Madgwick filter for quaternion-based orientation estimation using AHRS | |
Wu et al. | Simultaneous hand–eye/robot–world/camera–IMU calibration | |
Peng et al. | Design of an embedded icosahedron mechatronics for robust iterative IMU calibration | |
JP2022045269A (ja) | 移動体の姿勢推定方法 | |
Wöhle et al. | A robust quaternion based Kalman filter using a gradient descent algorithm for orientation measurement | |
Habbachi et al. | Partical filtering for orientation determining using inertial sensors IMU | |
Słupik et al. | Novel lightweight quaternion filter for determining orientation based on indications of gyroscope, magnetometer and accelerometer | |
Tian et al. | A fast adaptive-gain orientation filter of inertial/magnetic data for human motion tracking in free-living environments | |
Shetty | Robust human motion tracking using low-cost inertial sensors |