0

私のプロジェクトでは、ロケットの正しい向きを決定する方法が必要です。

ここからMadgwickフィルターのコードを取得しました

https://github.com/morgil/madgwick_py

データを収集するために、Arduino Nano + MPU9250センサーを使用しました。このセットアップは、シリアル経由で 12 ミリ秒ごとにパケットを PC に送信します。

一連の測定値によって作成された、軸の原点と球の中心を「整列」するバイアスを計算することにより、磁力計を較正しました。

次に、blender: 3D 軸で座標軸を描画 し、そのためのスクリプトをコーディングしました。シリアルから値を読み取り、フィルターにフィードしてから、四元数回転モードを使用して軸オブジェクトを回転させるだけです。

X 軸の向きを少し間違えたので、ボードを時計回りに回転させると、画面上の軸が反時計回りに回転します。すべての X コンポーネントの符号を反転したところ、問題なく動作しました。

この画像によると、MPU i の軸は、X 軸と Y 軸、および Z 軸の符号を反転させて、磁力計の軸をジャイロスコープ + 加速度計に合わせました。

そして、それは1つの小さな例外を除いてほとんど機能します-「安定化」の後、つまりX軸を下に傾けると(またはY軸は関係ありません)、この軸はグローバルXY平面に向かってドリフトし始めます。軸を上に傾けると、残りの軸はグローバル OZ 軸の周りをドリフトし始めます。このように、 X 軸は下向き、 X 軸は上向きになります。

そのドリフトの速度は、Madgwick フィルターのベータに依存します。ベータが多いほど、ドリフトが大きくなります。

そこで何ができるでしょうか?

4

0 に答える 0