2

私はiPhone/iPadアプリを書いています。加速と減速が不安定な直線の水平線の近くを走行する車両の進行方向の加速と減速を計算する必要があります。X、Y、Z直交加速度計からの3つの読み取り値のシーケンスがあります。ただし、iphone / ipadの向きは任意であり、加速度計の読み取り値には車両の動きと重力の影響が含まれます。結果は、車両が減速しているか加速しているかに応じて正または負の一連の単一加速度値になるはずです。加速が減速と反対の符号を持っている限り、正と負の方向は任意です。結果から重力を考慮に入れる必要があります。結果をある程度可変的に平滑化すると便利です。

解決策は可能な限り単純で、計算効率が高い必要があります。答えは、ある種の擬似コードアルゴリズム、Cコード、またはCコードに簡単に変換できる一連の方程式である必要があります。ObjectiveCのiPhone固有のソリューションも問題ありません。

ありがとう

4

4 に答える 4

3

これには、たとえば必要な大きさを取得するために、三角法が必要になります。

magn = sqrt(x*x+y*y+z*z);

角度を取得するにはatanが必要ですが、c関数atan2の方が優れています

xyangel = atan2(y,x);
xymagn = sqrt(x*x+y*y);
vertangle = atan2(z,xymagn)

負と正の大きさを取得する方法は任意ではありません。たとえば、π/2<xyangle<3π/2を負として解釈できます。それはmagnの符号にxの符号をとることになりますが、yからの符号をとることも同様に有効です。

于 2012-09-22T01:15:13.443 に答える
3

重力と運動を分離するのは本当に難しい。ジャイロスコープとコンパスの信号と合わせてデータを分析できれば、より簡単です。

ジャイロスコープは角回転の速度を測定します。その積分は理論的には角度方向 (および未知の定数) ですが、積分はドリフトの影響を受けるため、それ自体では役に立ちません。加速度計は、角度方向、重力、直線加速度を測定します。適度に複雑な数学を使用すると、これら 3 つの量すべてを 2 つのセンサーの値から分離できます。コンパスを追加すると、XY 平面 (Z は重力) が絶対座標フレームに固定されます。

この素晴らしいプレゼンテーションをご覧ください。

于 2012-09-22T00:16:02.433 に答える
2

userAccelerationを使用します。

加速度計の読み取り値から重力を取り除く方法や、方向を考慮に入れる方法を理解する必要はありません。コア モーション フレームワークには既に実装されています。

于 2012-09-22T09:12:16.297 に答える
1

加速度の平均値を追跡します。これにより、「ダウン」の参照が得られます。次に、個々の測定値から平均を引きます。

平均計算の感度をいじる必要があります。たとえば、高速道路を長くゆっくりと曲がると、平均がゆっくりと外側にずれてしまうからです。

これを補正したい場合は、GPS 追跡を使用して粗粒度のグローバル加速度を計算し、加速度計を調整できます。実際、GPS 速度の読み取り値を微分すると、それ自体で十分な絶対加速度が得られることに気付くかもしれません (私は試していないので、何とも言えません)。

于 2012-09-21T23:31:50.947 に答える