編集履歴一覧に戻る
d64152のアイコン画像

d64152 が 2026年01月31日16時41分24秒 に編集

コメント無し

本文の変更

## はじめに SONYの「SPRESENSE マルチIMUアドオンボード」の商品ページには、技術者なら思わず目を疑うような、インパクトのある一文が記載されています。 **「16個の民生MEMS IMUをリアルタイム合成することで、低バイアス変動および地球自転検出可能な低ノイズ密度を可能にする」** しかし、これほど挑戦的な仕様を掲げているにもかかわらず、実際にこのボードで地球自転(自転角速度)を検出したという具体的な事例や検証記事は、ほとんど見当たりません。 そこで本記事では、**「SPRESENSE マルチIMUアドオンボードで、本当に地球自転を検出できるのか?」** という点に焦点を当て、実機を用いたデータ取得と解析による検証を行いました。 ## 検証の目的 本検証の最終目標は、マルチIMUから得られるデータを用いて **「恒星日(地球が1回転する時間)」を推定すること** です。 一般的にMEMS IMUを用いた地球自転検出は原理的にもノイズ的にも厳しく、結果として少なくとも数十分程度の誤差が生じると予想されますが、それを踏まえたうえで「どこまで迫れるのか」を明らかにすることが真の目的です。 ## 検証のアプローチ

-

#### 1.最小二乗法による推定

+

### 1.最小二乗法による推定

本検証では、短時間であればバイアスが大きく変化しないという性質を利用します。 地球の角速度は $\omega \fallingdotseq 7.29\times10^{-5} rad/s$であり、理想的には、ジャイロセンサーの三軸のノルム$\sqrt{\omega_x^{2} + \omega_y^{2} + \omega_z^{2}}$はこの地球の角速度と一致します。そして、様々な方向にセンサーを向けてデータを取っていくと、空間内にある点$(\omega_x, \omega_y, \omega_z)$は原点を中心とした、半径$\omega$の球上に位置することになります。  しかし、実際にはそうはなりません。IMUのデータにはバイアスが乗っています。これにより球は原点からずれ、バイアスのベクトルを$\vec{B}$とすると、球の中心は$(B_x, B_y, B_z)$となります。このバイアスは前述した通り、長い時間でみると変化していきますが(これをドリフトと呼びます)、短時間であればあまり変化しません。つまり短時間でセンサーを様々な向きに向け、取ったデータについてどのような形の球の上に乗っているのかを推定し、半径を求めることで角速度が分かり、ひいては恒星日が求められます。 球の推定については以下のサイトを参考にしました。 https://risalc.info/src/Least-square-sphere.html 詳しい導出過程はこのサイトを見てほしいのですが、簡単に説明すると、 まず、点群について重心$(\overline{x}, \overline{y}, \overline{z})$を計算して、そこを座標原点とします。そして、点群$(x_i, y_i ,z_i)$と球の中心$(c_x, c_y, c_z)$を重心座標系では$(X_i, Y_i , Z_i)$と$(C_x, C_y, C_z)$と表すとし、球の半径$r$について$R=r^2$と置くと、次の総和Sを最小化すれば良いことになります。 $$S = \sum_{i=1}^{N} \lbrace (X_i - C_x)^2 + (Y_i - C_y)^2 + (Z_i - C_z)^2 - R\rbrace$$ あとは$R, C_x, C_y, C_z$それぞれについて微分し、連立方程式の形に持ち込むことで、逆行列を用いて、球の中心と半径が推定できました。