背景
これまで加速度計はMPU系しか使ってこなかったが、中国ではBMI系が人気らしい。
実際に使ってみて、どのような違いがあるのか比較する。
目的
BMI270とMPU6886の測定精度を比較する。
静止時のデータだけでは「0に近い値を返したほうが優秀」という結論になってしまいかねないので、回転運動時のデータも同時に集計する。
方法
BMI270とMPU6886をM5Core2に繋いで加速度とジャイロと測定にかかった時間を記録し、MicroSDに書き込んだ。
MPU6886はM5Core2に内蔵のものを使用した。
BMI270はIMU Pro Mini Unitを使用した。
IMUとM5Core2をモーターに固定して20°/sで1秒間回転->1秒間停止、反対方向に20°/sで1秒間回転->1秒間停止を2回繰り返した。これを5回行った。
回転運動時、静止時それぞれの測定結果を集計した。
結果
測定したデータのうち、z軸方向に対する角速度の変化をグラフにした。
モーターが静止している間はBMI、MPUともに0に近い値を返しているが、BMIのほうが値の振れ幅が小さいことが確認できた。
回転運動時
次に各区間の値の平均を比較した。
回転運動時の波形をpeak、静止時をflatとする。
peak_1~4の平均値は以下のようになった。
どちらも、平均すると20[°/s]に近い値になった。
peak_1 | peak_2 | peak_3 | peak_4 | |
---|---|---|---|---|
BMI | 21.70 | -21.53 | 21.59 | -21.56 |
MPU | 23.21 | -23.87 | 22.45 | -23.59 |
静止時
flat_1~3の平均値は以下のようになった。
どちらも十分0に近い値を返していると言える。
flat_1 | flat_2 | flat_3 | |
---|---|---|---|
BMI | -0.06003 | -0.05316 | -0.05481 |
MPU | -0.02640 | -0.08999 | -0.05788 |
各区間の標準偏差は以下のようになった。
flat_1 | flat_2 | flat_3 | |
---|---|---|---|
BMI | 0.02897 | 0.03021 | 0.03094 |
MPU | 0.5756 | 0.3942 | 0.5240 |
こちらは顕著に差が表れた。BMIのほうが測定誤差が小さいことがはっきりわかった。