読者の皆様
センサ フュージョン アルゴリズム (バージョン 7.10) の磁力計キャリブレーションを、起動後に数回繰り返すと、一貫性のない結果が得られることに気付きました。コードを詳しく調べたところ、磁力計のキャリブレーション手順はセンサー チップに依存していることがわかりました。私のセンサーの場合、キャリブレーションに使用される測定値を含む磁力計バッファがすぐにいっぱいになりました。これにより、磁力計測定の形状が制限され、適切な固定測定では不正確な適合が生じました。
手順センサチップを独立させる次のパッチを提案します。
magnetic.hの場合:
59 - #define MESHDELTACOUNTS 50 ///< magnetic buffer mesh spacing in counts (here 5uT)
59 + #define MESHDELTACOUNTS 5.0F//50 ///< magnetic buffer mesh spacing in uTそしてmagnetic.cでは:
230 - if (idelta < MESHDELTACOUNTS)
230 + if (idelta < (int32_t)(MESHDELTACOUNTS*pthisMag->fCountsPeruT))
268 - if (idelta < MESHDELTACOUNTS)
268 + if (idelta < (int32_t)(MESHDELTACOUNTS*pthisMag->fCountsPeruT))さらに、アルゴリズムのコメントでは磁場の強度は22~67 uTの範囲であるべきと記載されていたが、 magnetic.hでは最小値と最大値はそれぞれ 10 uT と 90 uT と定義されました。以下の変更を提案します。
56 - #define MINBFITUT 10.0F ///< minimum acceptable geomagnetic field B (uT) for valid calibration
57 - #define MAXBFITUT 90.0F ///< maximum acceptable geomagnetic field B (uT) for valid calibration
56 + #define MINBFITUT 22.0F ///< minimum acceptable geomagnetic field B (uT) for valid calibration
57 + #define MAXBFITUT 67.0F ///< maximum acceptable geomagnetic field B (uT) for valid calibration
できれば、NXP の誰かがこれらのパッチが正しいことを確認してくれるといいのですが。
よろしくお願いいたします。
ウーター
ウーター、
人々がコードを詳しく調べているのを見るといつも嬉しくなります。今後のリリースに向けてレビューする項目のリストにこれを追加します。
よろしくお願いいたします。
Mike