昨日は名阪Cコースで練習会がありました。
もちろん、オフシーズンの練習もしてきましたが、
アプリのフィールドテストを兼ねてます。
テスト結果ですが、
やはり、加速度の検出がイマイチで、
要修正となりました。
加速度の単位系をm/s^2からG(1G=9.81m/s^2)に変更して、
それにあわせて、小数点以下第1位を切り捨てに変更していたのですが、
計測開始が上手く反応してくれませんでした。
スマホのセンサー(加速度センサー、磁気センサー)は、
検出される値がローカル軸なので、アプリでワールド軸に変換しているのですが、
この変換は角度(ロール、ピッチ)だけと思っていましたが、加速度も軸変換が必要でした。
厳密にいうと、画面を縦向き、横向きで軸変換はしていましたが、
画面を立てるか、寝かすかでも軸変換が必要ということがわかりました。
水平垂直の移動であれば、
移動軸以外の加速度は検出されないのですが、
角度が少しでもオフセットすると移動軸以外の加速度を拾うみたいで、
これまで気が付きませんでした。
(修正前)
double ay = HORIZONTAL ? accelerationArray[0] : accelerationArray[1];
double ax = HORIZONTAL ? accelerationArray[1] : accelerationArray[0];
(修正後)
double ay = HORIZONTAL ? USE_STAND ? accelerationArray[2] : accelerationArray[0] : USE_STAND ? accelerationArray[2] : accelerationArray[1];
double ax = HORIZONTAL ? accelerationArray[1] : accelerationArray[0];
修正は完了して、アプリはリリース済みですが、
スマホの加速度センサーを使う以上、
移動軸以外の加速度を拾うことはかわらないので、
計測開始の加速度設定を変えてあげる必要があります。
※小数点以下第1位を切り捨ては、四捨五入に戻しました
移動軸以外の加速度というのは、Z軸(上下)で、
静止状態でもエンジンがかかっている状態だと加速度を検出します。
初期値は0.1としていますが、
私のクルマだと0.2にしないと、アイドリングで計測開始します(笑)
Bluetoothで接続できる加速度センサーを見つけたので、
試してみようと思います。
◎WitMotion BWT61CL ブルートゥースMPU6050角度+ジャイロ+加速度(+ -16g)6軸 Bluetooth Accelerometer (TTLシリアル、100HZ出力)カルマンフィルタリング傾斜角度センサー for Arduino
にほんブログ村
Posted at 2021/12/26 13:34:08 | |
トラックバック(0) | 日記