スタックオーバーフローの皆さん、こんにちは。
短縮版 :)
iPhone の動きのみに関連する (x,y,z) 加速度値を使用する必要があります。明確にするために、車のような環境を考えてください。iPhone の加速度計は非常に敏感です。加速度値を 100Hz の周波数でログに記録すると、ノイズ、車の振動、および iPhone の動きのように方向付けられていないその他の加速度ベクトルに関連する非常に多くの値が存在します (たとえば、ダンパーの振動により、z 軸に沿った加速度ベクトルが発生します)。
言い換えれば、モーション方向と同じ方向 (特定のオフセット内) の加速度を分離できる方法で、加速度検出をフィルタリングする必要があります。
より深い考察 :'(
明らかに、y 軸が移動方向と重なるように iphone の位置を固定できます (前の車の環境では、これは iphone の y 軸を正面方向に平行に固定することを意味します)。問題は、iPhone の相対モーメントを許可する必要があることです。iPhoneの位置が固定できません。
まず最初に、ノイズと振動によって生成される値を分析し、その大きさが通常の車の加速度よりも非常に大きいことが多いことを突き止めました。大きさをフィルタリングすることは、問題を緩和するための良い考えですが、解決策ではありません。一方では、大きさが範囲内にあるため、多くの不要なノイズ加速度がフィルタリングされません。他方では、多くの必要なモーション加速度が範囲外であるため、フィルタリングされます。範囲。
iPhone 3GS では、磁力計を使用して磁北に対する方位角を測定できます。これを使用して動きの方向を見つけることができますが、問題はまだ残っています。magneticHeading の値は、常にデバイスの上部に対して相対的に測定されます。そのため、iPhone は正面方向に沿って固定する必要があります。
他の解決策は考えられません。アイデア?タンク・ユー!