私はAndroid用の動き検出アプリケーションを開発しようとしています。アプリケーションは、宇宙での携帯電話の動きを追跡し、それをコンピュータ画面上の動きにマッピングできる必要があります。私は3軸加速度計を使用しています。データは非常に騒々しいので、カルマンフィルタを使用しています。カルマンフィルタと内部状態変数の品質
内部状態は6成分ベクトル[速度-x、速度-y、速度-z、加速度-x、加速度-y、加速度-z]であり、測定状態は3成分ベクトル[accel-x、accel-y 、accel-z]である。
フィルタは測定値ではうまく機能しますが、速度はまだ非常に騒がしいです。
これは正常な動作ですか、私は何か間違ったことをやっている場合は、カルマンフィルタの私の理解は非常に基本的なものですので、今私は、疑問に思って。私は二重[] [] A = { {1、0、0、DT、0、(dtは近似センサリフレッシュレートである1/15である)
をJKalmanライブラリを使用し、状態遷移行列を次の午前0}、{0,0,0,1,0,0}、 {0,0,1,0,0}、{ 0,0,0,0,1,0}、 {0,0,0,0,1} };
また、テストデータから計算された共分散を持つ独自の共分散行列を設定しました。この改良された加速度信号は少しでも速度には影響しませんでした。
現在、私は速度のために[0,0632041857 0,0607274545 0,0886326602] stdvarを
を達成することができています[X、Y、Z]
[0,0041689678 0,004423822 0、 0074808552]を加速[x、y、z]とする。
私は加速信号に非常に満足しています。私はそれ以上に改善できないと思いますが、スピード信号の品質を向上させたいと思います。
実際、それはかなりうまくいっています、問題は本当に遅くて本当に速い動きです(期待どおり)。私は相対的な動きだけが必要なので(それは左、右、上、下に)、おそらくそれの大きさを知っています。スピードの問題については、私はスピードダンピングを使用しています(加速度ゼロが適用されている場合、スピードは各タイムステップで係数<1.0で乗算されるので、かなり速くゼロになります)。とにかく、材料のおかげで、私はそれを見てみましょう、面白いようです。 – Andraz
@Andraz興味深い。正確な速度は必要ありません。次に、あなたが何を記述すればうまくいくのですかとにかく幸運! – Ali