2

アプリ「モーション定規」をご存知ですか?iPhoneを動かしてオブジェクトの長さを取得するために使用できます。

iPhoneを動かすときにUIAccelerationから速度を取得するにはどうすればよいですか?

4

1 に答える 1

1

速度は単なる加速度 * 時間です。つまり、式を使用できます

v = u + 加速度 * 時間。

スターターとして、初速度が 0 であると仮定して見ることができます。「u」を無視して、加速 * 時間を取得できます。

距離が必要な場合は、距離 = 初期速度 * 時間 + 0.5 * 加速度 * 時間 * 時間を使用してください。

または、推測航法を使用して、加速度計から更新を取得するのと同じくらい頻繁に速度ベクトルを追加し続けることをお勧めします。

加速度をスカラーとして取得するには、a = sqrt(x*x+y*y+z*z) を実行できます。ただし、この前に重力を取り除きたいと思うでしょう! また、これは直線での距離のみを示します。より正確な読み取りのために、x、y、z で速度を個別に測定し、ベクトル解析を使用してパスを測定することをお勧めします。ただし、非常に正確にするには、回転を考慮する必要があるかもしれません。この機能は iPhone4s のみです。これはトリッキーになる可能性があり、おそらく行列演算を使用して、電話がある「スペース」の向きを合わせたいと思うでしょう.

また、「揺れ」を取り除くために加速度計でローパス フィルターを実行する必要があります。これは、かなりのエラー マージンが入り込む場所であり、アプリストアのすべての定規がこれを改善するのに長い時間を費やしたと私が予想する理由です。

フィルターを実行するための非常に単純なものは、filteredValue = ((lastValue * n) + accuracyValue )/(n+1) です。ここで、n の値が大きいほど結果はスムーズになりますが、反応が鈍くなります。

于 2011-07-12T23:46:48.723 に答える