問題タブ [arduino-esp32]

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.

0 投票する
1 に答える
51 参照

c++ - IMU からの配列内に多くのオブジェクトとそのデータを格納して、さらに計算する

私は現在、多くの (16) IMU、特に SPI で動作する MPU9250 を使用するロボティクス プロジェクトを行っています。

Bolder フライト ライブラリを使用した 6 つのセンサーの縮小例として

これらのセンサーを使用するには、それらすべてをキャリブレーションし、使用中にライブで磁気ハードオフセットとソフトオフセットを適用する必要があります。さらに、ジャイロスコープとアクセルも適用する必要があります。校正アルゴリズム。つまり、センサーごとに、各 IMU から 9 つの異なるデータ ポイントを呼び出し、いくつかの計算を適用する必要があるため、値と最終値とオフセットの間に格納するための配列をいくつか設定します。

次に、ループ自体で各オブジェクトを呼び出し、センサーの読み取り値を取得します。

コードは期待どおりに動作しているように見えgetAccel, getGyro, getMagますが、このデータを格納する方法、つまり配列に格納する方法、または のように呼び出す方法は間違っていると確信していますeulerAngles

これについての私の予感は、最初のテスト中に、受信した一部のセンサーデータに振動エラーが適用されているため、どこかのメモリからジャンクデータを受信して​​いると思われます

... for ループを使用していたでしょうが、各オブジェクト名は個別でインデックスがないため、このような大規模なデータ セットを呼び出して操作するためのベスト プラクティスや最速の方法がわからないのです。私は同様の質問を見つけましたが、残念ながら私は愚かすぎて自分の状況に適用できません。

問題は、非常に多くのオブジェクト (およびそのデータ) を呼び出して配列に格納し、さらなる計算を行うための適切な方法は何かということです。変数が 100 個を超えることは避けたいと思います (16 個すべての IMU とその間の変数を使用して、適切な計算をすべて実行する場合)。おそらくひどく書かれたコードで申し訳ありませんが、私の c++/Wiring は最適ではありません。