IMUでRTKの遅さを補間しようとして、いろいろ調査してます。
IMUよりGPSのドップラー効果がアドバンテージがあることをトラ技の記事で目にしたのを思い出しました。
2019年10月号です、この号をみて、即F9P購入に走ったバイブル本です。
=>もう使わないので、メルカリに出品しますのでほしい方は本記事で欲しい旨コメントいれてください。コメントを受けて出品します。予定価格6000円です。コメントは非公開にします。
●今回の衝動買いは、第9世代のUblox M9Nです。RTK以外の普通GPSの中では相当性能がいいです。
RTKを補間する目的で、IMUの代わりに普通のGPSを使うという裏技アイデア実現のために衝動買いしました。データシートではNAV-PVTが25Hzなので高レートGPSです。基板上にチップアンテナがあるボードを選定しました。欲しいのは緯度経度ではなく、ドップラーで得られる速度ベクトル(NAV-PVTのheadMot,gSpeed,velN,velE,velD)なので、位相と波数精度がうるさいRTKアンテナよりは、ドップラー計測は、周波数の計測なので、アンテナ感度がうるさくないのではないかと期待してます。これでダメなら外付け用を購入する羽目になりますが、その分、アンテナの性能の体験学習できるのでそれはそれでよしとします。
※ドップラーの欠点 原理上高速度必要
GPSドップラーの欠点として時速20~30Km/h以上でないとノイズが多いことが分って、スキー計測での低速度ができない点がネックとなりました。自動車、自転車など速度が速いものならきれいにデータがでます。スキー滑走の補完目的に採用したのですが、代わりに9軸IMU BNO055で内蔵FILETRを活用する方法でGyroの角速度とLinearAccを積分して回転角と移動位置を50Hzで得て、RTKの測位データで補正する方法で、スキー挙動を補間することにしました。http://shinshu-makers.net/shinshu_makers/?s=BNO055
※2022年8月24日追記
ドップラーデータ処理Pgm作成中ですが、ノイズが多くて困っておりますが、自動運転関連論文では、街中ではドップラーが一番信頼性が良いと書いてあります。古い論文なので、GPSの性能が悪いのかノイズが私の計測より多いですが、ジャイロで補間してます。
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwisntu0vN_5AhWEHKYKHe6gDbYQFnoECAgQAQ&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2F%3Faction%3Drepository_action_common_download%26item_id%3D79961%26item_no%3D1%26attribute_id%3D1%26file_no%3D1&usg=AOvVaw0fvO1Z-nYeYp-ezXb1yDYr
※2022/8/25 ローパスフィルタで目いっぱい平滑化して、積分して移動距離だしたら、200msec周期でF9Pのポジションと比較して、10cm精度に収まってました。F9Pの補間に使えそうです。
【RTK22】GPSドップラーノイズ対策にLowPassFilterかけた<結構使えそう>
●IMUとRTKのそれぞれの課題
① IMUの課題
加速度を2回積分することで、静止していてもノイズの分だけ位置がずれてしまいます。
下表は、グレード別の精度ですが、航空機用レーザージャイロでさえも1時間で1.9km誤差がでます。
IMU単独では、使えないことがわかります。
https://www.jstage.jst.go.jp/article/jrsj/37/7/37_37_579/_pdf
この課題は、世界中の研究者が様々な方法で解決しようとしてます。歩行の場合は、接地の瞬間にリセットしたり
してます。ありとあらゆるセンサフュージョンを駆使しても、道のりの数%誤差までしか精度が出ません。
1m移動したら、数cm誤差がでてしまうのが、MEMS IMU位置推定の限界ではないかと思います。
海外の研究例 PDRで検索すると何百と記事でてきます。WIKI Dead Reckoning
・Personal Dead Reckoningの走り2007年の研究でここまで出来てます。
https://ieeexplore.ieee.org/document/4381271
・最近の研究 磁気センサも加えて精度をアップ1-2%くらい
https://arxiv.org/ftp/arxiv/papers/2201/2201.09716.pdf
・検索ページ 最新の解析手法とか使ったのが多いです。限界がみえてるもう終わった分野かもしれません。
●感想=>自分でIMUいじってみて、フィルターを試してみましたが、KALMANフィルターは、IMU以外に速度、方向センサがないとRTKの補間ができそうにない、IMUは重力加速度ありきの存在なので、倒立振子やジンバルには、効果がありますが、地上面併進方向とYAW方向は地磁気を使う以外ないです。地磁気センサは、初期補正、傾斜補正などしなければいけないので精度面でRTK並みにはなりません。自動運転では、車速をタイヤの回転センサからDRに入力してるので、それを見習えば速度、方角データを別途いれてあげないとフィルタの精度が上がらないと思います。自動運転の位置精度実力値が1-2m程度ですので、我々RTKユーザーからすると笑ってしまうほど位置精度低いです 所詮DR技術の目標精度とRTKの目標精度は桁が違うのかもしれません。<ビル群トンネルなどの外乱がたっぷりのテストですので、RTKのみで比較してないですが>IIRフィルタでローパスしても、IMU自体のもともとのノイズ特性が低くないと積分誤差はどうしようもない。ということで、IMU以外にセンシングデバイスが必要だという方向になりました。求めているのは、RTKの125msec周期間の動きの情報を埋める位置推定技術です。IMUとKALMANフィルタの組み合わせは、重力方向からの運動角度精度が良いので、足と上体にとりつけて、足と上体の角度計測に使いたいと思います。
②RTKの課題
衛星電波をうけてから、統計計算が入るので、測定レート遅い、RTkで10-100Hz,MovingBaseで10-20Hz、単独測位で10-100Hz動きの対象となるスポーツとか乗り物では、25-50Hz程度は絶対に必要な周波数で、それができないと使えない点、Ardusimple社は,モザイクチップボードをだしたり、Ubloxは、IMU接続とDR内蔵したチップ、IMUとDeadReckoningを対応したM9Lを出しています。40-50Hzでてます。
DeadReckoningで、IMUとGNSSの短所を埋めあうというのが最近の位置センシングの流れです。
=>「速度の速いIMUは、精度がでない、精度が良いRTKは速度がでない」ジレンマはここ10数年続いてます。
私もスキーターンで計測レートが遅すぎて、初心者レベルの滑りしか精度良く測定できない課題をかかえてます。
2022年から2023年で解決しようと、日夜、調査検討してます。
●GPSドップラーの紹介記事の理解
トラ技 2019年10月号の81-82ページ 目黒淳一様の記事
著者は、自動運転研究者様のようです。
①原理 (記事の受け売りなので、バックナンバーか古本購入して熟読をお勧めします)
元々GPS受信チップは、GPS衛星からの電波のドップラ効果を精密に計測しながらGPS受信をしている原理です。
ですので、GPSの速度は、距離/時間で計算されてません。受信中の衛星電波の周波数のドップラー効果を測定して速度と方角(ベクトル)を計算してます。RTK計算ほど重くない計算ですので、RTKチップでなくても、安いGPSチップでも、速度精度が良いのです、市販のGPSスピードメーターが高精度なのもGPSのドップラー原理からきてます。
②ドップラーの精度と自動運転での使い方
L1電波(1575.42MHz)搬送波として波長20cmの1/10 2cmの分解能で測定できる点がポイントです。
実用的な研究もあってIMUとLIDRの補間としてGPSドップラーが効果がある。
「自動運転支援のための高精度自車位置推定」 豊田中研 小島祥子氏
③ドップラーの原理
原理図は小野測器がわかりやすいです。以下 小野測器記事抜粋
この手法では、電離層の影響をほとんど受けることがないため、位置の変化量から速度を算出する方法と比較して、 極めて高精度に移動体の速度を算出することが可能です。
その水平成分の精度は2 σで0.03 m/s、3 σで0.08 m/ s となります。
なお、垂直成分の精度はこの限りではなく、原理的に衛星が片方向しかないことから水平成分と比較して約3 倍程度精度が悪化します。 上図のイメージから、複数の衛星から移動体が異なるドップラーシフト周波数の電波を受けていることが分かります。
これらの関係を定式化すると、
Δ fd1 = 1/ λ(V0 - V1)・u1
Δ fd2 = 1/ λ(V0 - V2)・u2
Δ fd3 = 1/ λ(V0 - V3)・u3
Δ fd4 = 1/ λ(V0 - V4)・u4
Δ fd5 = 1/ λ(V0 - V5)・u5
となります。
ここで、λは衛星から照射される搬送波の波長で約0.19m、fb は受信機のクロック誤差(Hz)、un(n = 1..5) は衛星と受信機位置の視線方向単位ベクトルであり、次の式により算出します。
un =ρ n/| ρ n|(n = 1..5)
ρ n =[(Npn - Np0),( Epn - Ep0),( Dpn - Dp0)]T(n = 1..5)
これらの式からVo について解くことにより、移動体の速度を得ることができます。
●RTKの補間に使うアイデア
自動運転の目的とは違って、私の場合は、60kmh程度のアルペンスキー スラローム競技のスキーターンの場合の旗門通過の測位の穴埋めにドップラーベクトルを使うアイデアです。当初、IMUでやろうと、調査実験していたら、MEMS IMU単独(Acc,Gyro,Mag)だけではRTKレベルの位置精度は出そうもないので、別途、速度と方角(速度ベクトル)の高精度センシングで、何かないかさがしていたら、灯台下暗しで、GPSドップラーがありました。 RTKでなくていいので、単体のみの測位の普通のGPSで、レートの速いものを探しました。
KALMANフィルターでIMUと組み合わせるか、単独で軌跡を推定するか方法を開発していきます。
UBLOX M9Nがありました。https://www.u-blox.com/en/product/neo-m9n-module
data sheet:
https://content.u-blox.com/sites/default/files/NEO-M9N-00B_DataSheet_UBX-19014285.pdf
更に、CFG-RATEを見ると、40Hzまで設定可能だそうですので、状態によっては40Hzも可能かもしれません
●以後
スキー関係の一連のシステム作りに、M9Nも試してみます。アンテナ内臓タイプを発注したので、それで首尾よくいけばラッキーです、だめなら、アンテナ端子付きも購入してみます。IMUのFILTERで泥沼につかるよりは、綺麗にクリアできそうなので、投資価値はありそうです。RTKほど、位置管理は必要ないけど、精度の良い速度ベクトルを高速でほしい用途には、最適解になると期待してます。
※2022年7月2日追記 速度精度(sAcc)とヘッディング精度(headAcc)をF9PとM9Nで比較しました。
位置精度では、RTKのF9Pが数cmで、M9は、1-2mと完全に負けてますが、いざ、速度ベクトルとなると
F9Pの精度の2倍程度の精度が出てます。F9P8Hz、M9N25Hzですので、速度ベクトルとしては優秀な精度だと
思います。MEMS IMUでは、ここまで出ないです。
◎目論見通り、非RTKのGPSでもドップラー速度ベクトルの精度は良いです。
速度精度が良いので積分して距離を出してF9Pの位置と比較しても線形がでてました。
※2022年6月14日M9N到着後、DRシステム作りを始めました。記事リンクは下記です。
①【RTK22】高レートGPS Ublox-M9Nいじる その1<SBASって何だ>