問題タブ [core-motion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 加速度センサー/ジャイロスコープデータのコアモーションと周波数のプッシュ方法
プッシュ方式を使用して加速度計/ジャイロスコープ/デバイスのモーション データを取得する場合、残念ながら、ジャイロスコープとデバイスのモーションの最大周波数は平均で 72 Hz を超えることはできません (実際、データはまったく周期的ではありません)。
さらに悪いことに、ジャイロスコープ データのみが記録されている場合 (デバイス モーション更新サービスを開始せずに: [motionManager startGyroUpdatesToQueue:opQ withHandler:gyroHandler] のみを使用)、ジャイロスコープ データ周波数は平均で 52 Hz に低下します。
プル方式を使用して 100Hz でジャイロスコープ データを取得しようとした人はいますか? 「プル方式」で最大100Hzのスループットに到達できるか?
さらに、この問題のある動作が ios 4.2 (ベータ) で修正されているかどうかを確認した人はいますか?
iphone - 可変加速度計から速度を取得する方法(単純な直線運動)?
加速度計に基づいていつでも現在のiPhoneの動きの速度を計算したいのですが、加速度計は可変です。誰でもアイデアを提供できますか?
ios - Core Motion - ローカル オイラー角を別の参照系に変換する
ローカル オイラー角を別の参照系の角度に変換する際の数学に問題がありました。車両の軸に合わせて iPhone があり、ロール角を測定したいとします。iPhone のロール角はデバイスのロール角と等しくなります。しかし、iPhoneが傾いて取り付けられている場合はどうなりますか。この場合、ローカル オイラー角を別の参照フレーム (車など) に変換する必要があります。誰かが私を正しい方向に向けてもらえますか?
iphone - Core Motion を使用して電話の高度と方位角を決定する
これは簡単なことのように思えますが、運が悪いだけです。
私ができるようにしたいのは、コアモーションを使用して、電話のカメラがどこに向けられているかを追跡することです(一種の拡張現実アプリの場合)。ユーザーは電話を基準点に向け (写真を撮るかのように)、ボタンを押して電話の位置をオブジェクトに「位置合わせ」します。ユーザーが携帯電話のカメラを他のオブジェクトに向けると、携帯電話の高度 (-90° から +90°) と方位角 (0° から 360°) の変更を決定する必要があります。
CMAttitude によって指定されたオイラー角は、私が必要としているものではないようです。ユーザーが「整列」を押したときに取得した CMAttitude をキャッシュしようとしました。次に、ユーザーが電話を動かしたときに、新しい CMAttitude を取得し、multiplyByInverseOfAttitude を使用して基準姿勢との差を判断します。
しかし、これでは正しい結果が得られません。電話が垂直に保持されている場合 (長軸が上)、deltaAlt は正常に機能します。電話が地平線 (alt = 0) に向けられている限り、deltaAzm も正しいです。ただし、携帯電話が (たとえば) 45 度空に向けられている場合、携帯電話を方位角に動かすと、高度コンポーネントも変更されます。この二つは、私には理解できない形で絡み合っています。
これらを分解するために必要な簡単な数学はありますか? 繰り返しますが、これは拡張現実アプリに必要な必要性だと思いますが、これを行う例を見つけることができませんでした.
iphone - AVAssestWritterを使用したビデオ出力用のOpenGLのCMSampleBuffer
OpenGLフレームのCMSampleBufferを取得する必要があります。私はこれを使用しています:
CMSampleBufferCreateのEXEC_BAD_ACCESSを取得します。
どんな助けでもありがたいです、ありがとう。
iphone - バックグラウンドでのコアモーション?
アプリがバックグラウンドにある間、Core Motionフレームワークは機能しますか?
iphone - iphone - ヨー、ピッチ、ロールのコア モーション レンジ
私は現在 iPhone 4 を持っていないので、ヨー、ピッチ、ロールの範囲とデバイスの対応する位置を示すドキュメントを探しています。
加速度計が -1 から +1 まで変化することは知っていますが、昨日の iPhone でのテストでは、ロールが -M_PI から +M_PI まで変化することを示しましたが、ヨーとピッチの範囲はその半分です。これは正しいです?
これらの範囲に関するドキュメントはどこにありますか? Appleのあいまいなドキュメントには表示されません。
ありがとう。
iphone - デバイスのモーション更新の実際の頻度は予想よりも低いですが、設定によってスケールアップします
IOS 3 の加速度計を使用して最初に作成したアプリを移植して、新しい IOS 4 モーション機能を組み込みます。
モーションをキャプチャしている間、アプリケーションは他にほとんど何もしません。たとえば、グラフィックスの更新はありません。
以前に使用した加速度計の代わりに、モーションの更新を設定するために次のことを行っています。NSTimer などを使用して独自のポーリングを行うように再構築できることを認識しており、まだそれを追求する可能性があります。
[motionManager setDeviceMotionUpdateInterval:updateInterval];
CMDeviceMotionHandler motionHandler = ^(CMDeviceMotion *motion, NSError *error) {
[self processMotion:motion withError:error];
};
[motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:motionHandler];
これは機能しますが、更新間隔が期待どおりに動作しません。実際のモーション更新レートを確認するためにタイムスタンプを保存する以外は、processMotion メソッドのすべての実行コードを削除しました。私はこれを十分にテストして、1/40 の奇妙な結果でさえ、再現可能であることを証明しました。以下の表は、私が見ているものを示しています。
いくつかの注意事項:
1. 更新間隔が適切に設定されていることを確認しており、確認のために設定後に確認しました。
2. processMotion のすべての呼び出しを追跡していると確信しています。nil CMDeviceMotion またはその他の奇妙さで行われている呼び出しはありません
。そしてそれらを記録します。これはすべて、加速度計のデリゲートとして完全に機能しました
4.モーションデータは良好ですが、更新頻度が低すぎます:)
5.これは、iPod touch第4世代
6でios 4.2を使用しています。できる限り検索しました。説明は見られませんでしたが、60hz を要求したときに 50hz の更新頻度が表示されたという報告をいくつか見ましたが、これは関連している可能性があります。
次に試すのは、現在のキューを使用する代わりに、処理専用のキューを設定することですが、これが既知の動作であるかどうかを確認したかったのです。更新レートが何らかの形でボトルネックになっているかどうかは理解できましたが、その場合に示されているようにスケールアップする理由はわかりません.
繰り返しますが、NSTimer を使用して独自のポーリングを行うように再構築できると思いますが、Core Motion フレームワークを根本的に誤解している場合に備えて、なぜこれが表示されるのかを理解したいと思います。
iphone - iphone-コアモーション(相対回転)
コアモーションから相対回転を取得する方法はありますか?
必要なのは、1つの軸でどれだけ回転し、どの方向に回転したかです(+記号=反時計回り、-=時計回り、右手の法則に従います)。
プロパティrotationRateを見つけましたが、これにより1秒あたりのラジアンが得られるため、このプロパティから角度を抽出する方法がわかりました。
私はこの数日間、あらゆる種類のことをしましたが、安定した価値を与えてくれるものは何もありません。NSTimerを使用してコアモーションデータのタイミングサンプルを作成し、2つのサンプル間の差を計算しようとしたので、最後のサンプルからどれだけ回転したかがわかりますが、時々、13600度のようなクレイジーな数値が得られますiPhoneがテーブルの上に置かれているときでも。
これをどのように達成できるかについて何か考えはありますか?
ありがとう