問題タブ [sensor-fusion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gps - GPS 報告精度、誤差関数
ほとんどの GPS システムは、「精度」をメートル単位で報告しますが、その数値は桁違いに異なります。この数字はどういう意味ですか?推定のための誤差関数、つまり、GPS の読み取り値とその報告された精度が与えられた場合の実際の位置の確率にどのように変換できますか?
GPS 精度に関するウィキペディアの記事によると、受信機に到達する無線信号のタイミングを正確に合わせることで、3 メートルまでの測定値を達成できます。これは、たとえば iPhone で報告された最も厳しいエラー マージンに対応しているようです。しかし、それは外部信号の歪みを考慮していません。
エラー関数には 2 つのドメインが必要なように思えます。報告された精度まで緩やかな線形勾配があり、その後多項式または指数関数的に増加します。
それをいじるよりも良いアプローチはありますか?さまざまな GPS チップセット ベンダーは、何らかの標準的な意味に準拠していますか? それとも、機能の同等性のために何らかの番号のみを提供していますか?
java - Android モーション センサーからのデータを固定レートでログに記録する方法
Androidプログラミングの基礎を学んでいます。
私は、加速度計、磁力計、および方向データを外部ファイルに記録しながら表示する単純なAndroidテストアプリケーションを持っています。メソッドinitLoggerを呼び出して、 [開始] ボタン (関連するセンサーの registerListener)のクリックでログ記録プロセスを開始します。
これに似ているものは...
ロギング プロセスを停止する [停止] ボタンもあります (最後に、各センサーの unregisterListener を呼び出して登録を解除します)。
データ取得プロセスは、関連するセンサーからデータを取得し、それぞれの UI 要素に値を設定し、最終的にデータを外部の .csv ファイルに記録するonSensorChangedハンドラー内で発生します。
onSensorChanged イベントハンドラは次のようになります...
構成されたすべてのセンサーからデータを受信しますが、データを受信する速度を制御することはできません。すなわち
SensorChanged イベントは、センサー データが変更されたときに発生することを知っています。ただし、このイベントを固定レートで発生させたいと考えています。例: 40ms ごと
質問:
- SensorChanged イベントが一定のレートで発生するようにするにはどうすればよいですか?
- この場合、Java のクラス TimerTask は役に立ちますか?
ここSOの専門家。助けてください:)
android - getDefaultSensor(Sensor.TYPE_ACCELEROMETER).getMaximumRange()
私が電話したら
19.X m/s^2 です。今それは各車軸にありますか?
つまり、G-Force を携帯電話に適用したい場合は、G-Force = SQRT(Xvalue^2 + Yvalue^2 + Zvalue^2) / 9.80 m/s^2 を実行できます。
値は次のことを意味しますか: 最大 G フォース = SQRT (19^2 + 19^2 + 19^2) = 33/9.80 = 3.3G?
遅すぎませんか?何か不足していますか?または、値を高くするためのトリックはありますか? 前もって感謝します。ギレルモ。
android - モーションセンサー - 加速度計、ジャイロスコープ、磁力計の意味のある完全なチャート
私はモーションセンサー - 加速度計、ジャイロスコープ、磁力計に取り組んでいます。これらのハードウェアからデータを読み取ることができるcアプリケーションを開発しています。ハードウェアボードでこれを行うことができます。しかし、これらのデータを何らかの意味で完全な形式でユーザーに表示したい.これらのデータを使用して描画できるチャート (フル - 円、正方形などを意味します)。モーション センサー ボードを回転させている間に X、Y、Z 軸のデータが急速に変化する様子を簡単に示すことができますが、すべての軸についてこれらのセンサーのデータを描画して含めることができ、意味のあるグラフ/チャートを作成できるチャートはありますか。like Charts for Magnetometer :磁力計用
モーション センサーの値を使用して完全なチャートを描画できる意味を知りたいと思いました。Rgds、ソフト
android - (仮想)センサーAndroidの電力使用量
Nexus 4の機能を調べてみると、センサーが複数回報告されているように見えることがわかりました。
私はこれまでセンサー(または一般的なスマートフォン)を使用したことがないため、いくつかのアプリを使用して概要を把握しました。AndroidFragmentation.comのデバイスアナライザーとセンサーエクスプローラーの両方で15個のセンサーが表示されます。ここで結果を見ることができます。
また、iFixIt.comによると、ジャイロスコープと加速度計として(のみ)組み込みのInvensense MPU-6050がありますが、Androidは次のように報告しています。
- LGEによる2つのセンサー
- 「LGE加速度センサー」
- 「LGEジャイロスコープセンサー」
- 2クアルコム
- 「線形加速」
- 「回転ベクトル」
- 4 by Google
- 「回転ベクトルセンサー」
- 「線形加速度センサー」
- 「オリエンテーションセンサー」
- 「修正されたジャイロスコープセンサー」
Samsung GT-I9300のセンサーリストによると、これらのセンサーの一部は「仮想」になります。しかし、現時点で私が実際に興味を持っているのは、センサーの消費電力です。そして、それは私が本当に混乱するポイントです。
例として加速度計を取り上げます。「LGE加速度センサー」は0.5mAを報告しますが、「線形加速度」(Qualcomm)は4.1 mAを報告し、「線形加速度センサー」(Google)は9.1mAを報告します。3つすべての解像度は同じ(0.0011901855 SU)、LGEとQualcommの最大範囲は同じ(39.226593 SU)ですが、Googleは19.6133SUを報告しています。
私は最初、これによりさまざまな動作モードにアクセスできるようになると思いました。これにより、さまざまな値が説明されますが、それでも、なぜこれが他のベンダーを説明するのでしょうか。
現在:実際にはいくつの加速器が存在しますか?それらは本当に冗長ですか、それとも同じデバイスへの単なる仮想アクセスパスですか?もしそうなら、なぜ電力使用量がそれほど大きく異なるのですか?そして、なぜ範囲?
更新 仕様に従って、ジャイロスコープは3.6mAの電流を排出し(「LGEジャイロスコープセンサー」と一致、他のすべてのレポートは9.1mA)、加速度計は通常の動作モードで500µAから低で10µA @ 1.25Hz〜110µA@40Hzの間で変化する可能性がありますパワーモード。
3Vの電圧(仕様によると一般的)では、これにより、ジャイロスコープの場合は10.8mW、加速度計の場合は10µWから1.5mWになります。
「GoogleInc。」を報告するセンサー センサーフュージョンを実行して、より高い精度と使いやすさの値を提供する仮想的なもののようです。このGoogleTechTalkをご覧ください。
android - 相補フィルターでのアルファ計算
センサーフュージョン用の補完フィルターを使用しています。私が使用している相補フィルターの式は
角度=(1-アルファ)*(角度+ジャイロ*dT)+(アルファ)*(accel_mag_angle)
アルファの計算について混乱があります。数式を使用してアルファが計算されることをどこかで読みました
ここで、dA は値を変更するレート (フィルターのカットオフ周波数を参照) であり、dT はサンプリング時間です。SENSOR_DELAY_UI を使用しています。UI のサンプリングレートは 15Hz 前後です。私は alpha=0.2 (試行錯誤の方法で) を使用し、アプリは正常に動作しました。しかし後で、式に従って alpha=0.2 (理論上) を使用できないことに気付きました。これは、60Hz のカットオフ周波数が得られ、サンプリング周波数が 15Hz しかないためです。カットオフ周波数の計算が間違っていますか? または、方程式の私の理解が間違っていますか?
filtering - 加速度計とジャイロスコープからの(大量の)ノイズをフィルタリングしようとしています
私のプロジェクト:
車の姿勢 (x、y、z、ヨー、ピッチ) を推定しようとして、3 軸加速度計とジャイロスコープを備えたスロットカーを開発していますが、振動ノイズ (車の走行中、ギアは振動を誘発し、トラックも悪化します)。ノイズは、たとえば加速度計の場合、±4[g] (g = 9.81 [m/s^2]) の間の値を取るためです。
私は知っています(私が観察しているので)、ノイズはすべてのセンサーで相関しています
最初の試みでは、カルマン フィルターを使用して解決しようとしましたが、状態ベクトルの値に非常に大きなノイズが含まれていたため、うまくいきませんでした。
EDIT2: 2 回目の試行では、カルマン フィルターの前にローパス フィルターを試しましたが、システムの速度が低下するだけで、ノイズの低成分をフィルター処理しませんでした。この時点で、このノイズが低周波成分と高周波成分で構成されている可能性があることに気付きました。
適応フィルター (LMS および RLS) について学習していましたが、ノイズ信号がないことに気付きました。1 つの加速度計信号を使用して他の軸の加速度計をフィルター処理すると、絶対値が得られないため、機能しません。 .
編集:適応フィルターのサンプルコードを見つけようとして問題が発生しています。誰かが同じようなことを知っていれば、私は非常に感謝します。
これが私の質問です:
フィルターについて知っている人や、フィルターを修正して信号を正しくフィルター処理する方法について知っている人はいますか?
よろしくお願いします。
XNor
PD: 間違いをお詫びします。英語は私の母国語ではありません。
android - LinearAcceleration で位置を計算する
Android ゲームに適用する Sensor.TYPE_LINEAR_ACCELERATION に基づいて、新しい X 位置を計算しようとしています。
次の変数をすべて 0 に設定して開始します。
私の時間変数は、最初は次のように設定されています。
次に、私の On SensorChange は次のようになります。
しかし、ログの newX が常に 0 になっています。
LinearAcceleration を正常に位置に変換した人はいますか? 誰かが私が間違っていることを理解できます..
私は中で泣いています!