• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2014年07月12日

超高速データロギングに挑戦♪(車両慣性データ)

超高速データロギングに挑戦♪(車両慣性データ) ”車の位置/姿勢をロギングする”
と一言で言っても、利用する目的や内容、そして要求精度によってもソフト&ハードの構成が変わってきます.低サンプリングデータを後に内挿するのか、あるいは高サンプリングで忠実に記録するのかは議論が分かれるところですが、後者の方がより統計的処理ができるので分析する側としては好まれます.


ググってみると気付きますが、市販のマイコンチップとお手頃なSDカードを使ってロガーを作ることは、それほど物珍しくないことに気付きます.物理センサやGPSデータ、ECUデータを低サンプリング(~5Hz)で保存することはそんなにハードルは高くありません.では、さらに1桁や2桁サンプリングレートを上げるにはどうしたらよいのでしょうか?

単純にSDカードに保存する間隔を短くすればいいんじゃない? と思って実行してみましたが、実はSDカードに保存するプロセスは凄く遅いし(※1:10~50ms)ばらつきもあるため、短い間隔でデータを保存できないことが分かりました.流れてくるデータをいちいち相手にして保存していては解がないということです.
※1:マイコンで操作しやすいSPI方式の場合

ではどうすればよいか? こんな方法を考えてみました.
簡単に言うと、AとBの2個のバケツを用意します. 高速で流れてくるデータをバケツAに流し込み一杯になるまで待ちます.バケツAが満たされたらすぐにデータの流れをバケツBに移します.それと同時にバケツAのデータをSDカードに保存する方法です.これをA/Bで繰り返します.この方法ならば、他方のバケツが一杯になるまでにSDカードとのやりとりを終わらせればよいことになります. イラストにするとこんな感じ.

    Fig.高速データロギングアルゴリズム
    ※マイコンのSRAM領域をバケツA/Bに割り当てます.


このやりとりをプログラムで表現するにはどうしたらいいんでしょう(ToT;;
ちょっと悩みましたが、ほんの数行で実現できるようにしてみました.
※5msecの割込処理で実行します.


とってもシンプルなプログラムですが、その実力を見てみましょう.
200Hzでデジタル6DOF-IMU(加速度/ジャイロ)データを取り込んでみました♪

time
omegaX
omegaY
omegaZ
accX
accY
accZ
sec
deg/s
deg/s
deg/s
G
G
G
0.000 0.6300 -10.7538 43.4438 0.4528 0.1872 0.9997
0.005 -3.7713 -11.3925 45.5700 0.4216 0.2028 0.9685
0.010 -6.9125 -11.5500 48.8950 0.4841 0.2185 0.9997
0.015 -10.1763 -12.7050 50.5050 0.3278 0.2341 0.9997
0.020 -13.3788 -11.5588 51.7388 0.3747 0.2341 0.9997
0.025 -14.6300 -13.9475 53.0425 0.3122 0.2341 0.9685
0.030 -16.2050 -14.2275 55.7900 0.3747 0.2653 0.9060
0.035 -14.0438 -9.4238 58.9050 0.4216 0.2810 0.9216
0.040 -12.2325 -6.6413 60.0600 0.5153 0.2966 0.9685
0.045 -8.3563 -7.1313 61.6613 0.4997 0.3278 1.0153
0.050 -4.9000 -11.4800 63.2625 0.5466 0.3435 1.0310
0.055 -2.8700 -17.4300 65.6688 0.4372 0.3435 0.9997
0.060 -1.5400 -21.2450 69.0550 0.4841 0.3278 0.9528
0.065 -1.1288 -20.4488 71.0150 0.4685 0.3122 0.9060
0.070 -1.5925 -17.9813 71.6450 0.4528 0.3122 0.8903
0.075 -1.4175 -9.3100 72.7300 0.2341 0.3278 0.9060
0.080 0.5688 -4.0338 73.1238 0.2028 0.3591 0.9528
0.085 3.8763 -3.5000 72.3450 0.5466 0.3591 0.9997
0.090 9.3975 -5.9588 71.7500 0.4216 0.3747 0.9997
0.095 15.7238 -11.4450 71.4963 0.3278 0.3591 0.9997
0.100 18.2263 -16.6425 70.5338 0.3122 0.3278 0.9841
0.105 16.5025 -20.8775 68.5650 0.2810 0.2810 0.9528
0.110 13.6675 -18.0513 68.9063 0.1872 0.2810 0.9216
0.115 9.8175 -14.9975 67.6200 0.0000 0.2966 0.8903
0.120 8.6888 -9.6338 66.4738 0.1560 0.3435 0.8903
0.125 7.3413 -5.7313 65.9750 0.3278 0.3435 0.9216
0.130 7.3413 -5.7313 65.1875 0.4372 0.3435 0.9372
0.135 7.3413 -5.7313 65.1875 0.4216 0.3435 0.9372
0.140 7.3413 -5.7313 65.1875 0.3278 0.3435 0.9372
0.145 7.3413 -5.7313 65.1875 0.3903 0.3435 0.9372
0.150 7.3413 -5.7313 65.1875 0.3903 0.3435 0.9372
0.155 7.3413 -5.7313 65.1875 0.3903 0.3435 0.9372
0.160 -40.1188 12.7050 52.1850 0.3903 0.1247 0.7497
  数十万行続くので、表示はここまで.
             

※ センサ値の更新は400Hz以上で更新されるためレスポンスとしては十分です.
※ロギングを終了するときは、両方のバケツをSDカードに流し込むだけ.
※数時間ロギングしましたがデータ欠損も皆無です.
※50Hz更新のGPSデータ(NMEA)も楽ちんでした♪


見た目はちっぽけなプログラムですが、非常に強力なアルゴリズムになっていることが確認できました(^0^/
データ量にもよりますが、数百Hz(~1000Hz)のロギングも安いマイコンで実現できちゃいますネッ.
この方法を使えばSDカードだけでなく、例えば無線通信を使ったデータ転送にも応用できます.
ちなみに画像の左下のやつはBluetoothユニット.無線でPCとデータの送受信を行ってます♪


こういった慣性データと古典制御理論あるいは現代制御理論を組み合わせて、
何かオモチャを作ってみるのもおもしろそーだなぁ~

↓以前作った6DOFセンサを使ったお遊び動画↓

ブログ一覧 | PIC+電子工作 | 日記
Posted at 2014/07/13 00:12:07

イイね!0件



タグ

今、あなたにおすすめ

ブログ人気記事

【新企画】写真コンテスト5月募集ス ...
VELENOさん

うどん県✕ヤドン号
ヒデノリさん

俺達の旅
バーバンさん

祝・みんカラ歴12年!
プレスタさん

お腹がすいた。なう。(・∀・)
KimuKouさん

マイカー通勤
nobunobu33さん

この記事へのコメント

2014年7月19日 20:41
これは楽しそうですね~。
SDへの書き込みですがNANDフラッシュメモリのページサイズを考慮した書き込みを行うと、SDの寿命や、ガベージコレクションの時間軽減や空きブロックの確保などに有利になります。

自車は一応100Hzでサンプリングしていますが、走行中の加速度はかなり強力にフィルタリング(カルマンやパーティクル・フィルターなど)しないと使い物にならないです。反対にヨーレートは素のままでもそれなりに使えますが、軽くフィルターリングした方が無難です。

目指せ、自律航法! でおねがいします?
コメントへの返答
2014年7月19日 21:19
minerさんのブログは色々触発されます(^^
でも黒っ9には難しいことばかりです.

DARPAチャレンジの自律航法は見てるだけでおもしろいですね.単独センサではたとえkalman使っても難しいかな(用途によるけど)? GPSや複数センサの相補フィルタ値で推定ですかね.フィルタは、1次遅れ系だとショボイし、FIRだと計算量が増えるし、やはりkalか.

6DOFのIMUを使ったTracking動画は驚異的です.大学の研究成果みたい.https://www.youtube.com/watch?v=6ijArKE8vKU
Plotはクォータニオン使ってますね.連続角度変化にはもってこい(^^ いろいろやってみます/

プロフィール

「倉庫から色々出てきたでござる http://cvw.jp/b/194408/41272537/
何シテル?   03/27 20:35
黒っ9(クロック)といいます。 黒のエボ9オーナーだったので クロック(笑) 休日は主にドライブです♪ 旅先の露天風呂なんか最高だね! 手作...
みんカラ新規会員登録

ユーザー内検索

<< 2025/5 >>

    123
45678910
11121314151617
18192021222324
25262728293031

リンク・クリップ

自作♪パルスジェネレータ(車&バイク用) 
カテゴリ:その他(カテゴリ未設定)
2017/01/30 21:33:58
自作♪GPI++:ギアポジションインジケーターVer5(MT用) 
カテゴリ:≡ 電子工作にチャレンジ♪
2016/08/27 23:18:43
【PSI++】自作ドライビングモニター でけたぁ~♪ 
カテゴリ:≡ 電子工作にチャレンジ♪
2014/09/16 23:08:56

愛車一覧

三菱 ランサーエボリューションX 三菱 ランサーエボリューションX
セクシーなXにあこがれて9GTから乗り換えました♪ ファントムブラックの5MTです. ...
三菱 ランサーエボリューションIX 三菱 ランサーエボリューションIX
納車されました(^^ セクシーなエボⅨにあこがれて思い切って買い換えました。ん~黒のボで ...
三菱 パジェロ 三菱 パジェロ
幼少の頃からパリダカで活躍するパジェロに興味があり、初めての車にパジェロを物色していると ...
三菱 ランサーエボリューションVII 三菱 ランサーエボリューションVII
頭文字D見てマニュアルの車にあこがれ、ワイルドスピード×2見て刺激され買ってしまいました。

過去のブログ

2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2016年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
2013年
01月02月03月04月05月06月
07月08月09月10月11月12月
2012年
01月02月03月04月05月06月
07月08月09月10月11月12月
2011年
01月02月03月04月05月06月
07月08月09月10月11月12月
2010年
01月02月03月04月05月06月
07月08月09月10月11月12月
2009年
01月02月03月04月05月06月
07月08月09月10月11月12月
2008年
01月02月03月04月05月06月
07月08月09月10月11月12月
2007年
01月02月03月04月05月06月
07月08月09月10月11月12月
2006年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation