コンパスのキャリブレーションの問題<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
皆さん、こんにちは。
私はCOMPASSに3軸デジタル磁力計(MAG3110)と3軸デジタル加速度センサ(MMA8451Q)を使用しています。
Freescale が提供するアルゴリズムによれば、コンパスのキャリブレーション データ (硬鉄および軟鉄) はどこにも保存されないため、電源を入れるたびに再キャリブレーションが必要になります。
キャリブレーションされた値を保存し、次回の電源投入時にこれらの値を適用する方法はありますか?可能であれば、どのような値を保存する必要がありますか?
よろしくお願いいたします。
Kishore P
センサ・フュージョンRe: Compass calibration Issue<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
ヴィタリー、
技術的には、3 軸磁力計 (Freescale が販売しているもの) は、X、Y、Z の感知方向にそれぞれ 1 つずつ向けられた 3 つの個別のセンサです。3 次元で磁気キャリブレーションを行うには、少なくとも 3 つの軸が必要です。1 つのデバイスに 3 つ以上の軸があるデバイスについて質問されている場合、私はそのようなものについて知りません。
完璧なセンサーを使用していても、すぐ近くにある鉄材料によって測定対象の磁場が歪む可能性があることを理解する必要があります。フィールド自体が非理想的なものになります。磁気キャリブレーションは、その歪みに対する逆伝達関数を効果的に実装します。
よろしくお願いいたします。
Mike
Re: Compass calibration Issue<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
こんにちは、マイケル!
1 つのデバイスに 2 つの磁力計が搭載されていることについてお聞きしたいです。私の知る限り、開発者の中には、電源投入後に磁力計を校正する必要を回避するために、2 つまたは 3 つの異なる軸に配置された 2 つまたは 3 つの磁力計を使用する人もいます。私はマガジンを 1 つ持っており、ソフトとアイアンの調整を実装しました。しかし、現在 2 つのマガジンを持っており、それをアルゴリズムにどのように実装すればよいかわかりません。
1 つのデバイスで複数のマガジンを使用することについてはどう思いますか?それは意味を成しますか?
Re: Compass calibration Issue<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
キショア、
素晴らしい質問ですね!コードを書いたエンジニアに問い合わせたところ、次のような返答がありました。
キャリブレーション パラメータをリファレンス ソフトウェアに (デフォルトで) 保存しないという決定は、次の 2 つの理由により行われました。
- マーケティングの観点から、フリースケールは、事前に保存された値を使用するよりも、コールド スタート後のキャリブレーション アルゴリズムの動作をデモンストレーションする方が価値があると考えました。
- キャリブレーション係数は温度に依存しており、その間に周囲温度または電子機器の温度が変化すると、最後の電源オフ時に保存された係数は最適ではなくなります。
したがって、最も安全な方法は、電子コンパスの電源を入れるたびにキャリブレーションを再計算することです。
これが不便な場合は、次の方法を使用する必要があります。
- 硬鉄の較正ベクトル(fV)、軟鉄の逆マトリックス(finvW)、地磁気の強度(fB)は、
MagCalibration構造体は電源オフ時に保存され、次回電源オン時に構造体にコピーされる必要があります。これは、これらのパラメータは前回の電源オフ以降の温度変化により不正確になる可能性があるものの、ヌルキャリブレーションよりは精度が良いという考え方に基づいています。 - 磁気バッファの内容は保存しないでください。ここでの論理は、これらの測定値は異なる動作温度で取得された可能性があり、新しい動作温度で電源を入れた後に新しいキャリブレーションを計算する際に邪魔になるだけであるというものです。
- フィット エラーのパーセンテージ (MagCalibration 構造体の fFitErrorpc) は保存されず、電源投入時に 10% (Freescale デモ ユーザー インターフェースの 3 つの緑色のバーに対応) または 12% (2 つの緑色のバーに対応) などの値に初期化される必要があります。これにより、新しい測定値が磁気バッファに取り込まれると、以前に保存されたキャリブレーションがすぐに置き換えられます。これにより、たとえば 1% の適合誤差を持つ優れたキャリブレーションが適合誤差とともに電源オフ時に保存され、新しい動作温度ではより正確である可能性があるものの、(依然として優れた) 2% のキャリブレーション適合しか達成できない新しいキャリブレーションがロックアウトされるという問題が回避されます。
それが役に立つことを願います。
よろしくお願いいたします。
マイク・スタンリー