問題タブ [drift]
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.
macos - OS X で正確な NTP ドリフトを取得する方法
ローカル NTP サーバーに接続された Mac で実際の NTP ドリフトを取得しようとしています。
/var/db/ntp.drift
ファイルを読み取ると、-37.521 が得られます。PPMからミリ秒への変換によると、 -3241msのドリフトが発生します。使用する
ntpq -c lpeer
と、次のようなものが得られます。
これは、 38.322msのドリフトを意味します。
- 最後に、
sntp 172.1.1.5
これを出力します。
これは、 19.244msのドリフトを意味します。
どのアプローチが正確な NTP ドリフトを与えるのか混乱していますか?
calibration - x-IMU ハードアイアン キャリブレーション値が大きすぎて登録できません
x-io Technologies の x-IMU を使用しています。
ドリフト補正には、AHRS オンボード アルゴリズムを使用します。
ハードアイアン キャリブレーションがないと、小さな連続回転があります。
x-IMU-GUI-v13.1 を使用したハードアイアン キャリブレーションから、次のような値が得られます。
- x軸ハードアイアンバイアス: 882076,942002059
- y 軸ハードアイアン バイアス: -814599,840421389
- z軸ハードアイアンバイアス: 834205,266804569
これらは、ハードアイアン バイアス レジスタに自動的に設定されます。このレジスタの値は -16 ~ 15.99951 です。これにより、次のレジスタ値が得られます。
- X軸ハードアイアンバイアス:15.99951
- y軸ハードアイアンバイアス:-16
- z軸ハードアイアンバイアス:15.99951
IMU を水平に回転させると、磁力計の y軸で次の値が得られます。
しかし、16 を超える値はすべて切り捨てられます...
x 軸にも同じ問題があります。
では、どこに問題があるのでしょうか。
ハードアイアンキャリブレーションまたは磁力計レジスタ設定で?
答えてくれてどうもありがとう!
android - 3D 再構成での領域記述ファイル (ADF) の使用
私は、Google のプロジェクト Tango を使用して、3D スキャンと再構成を調査してきました。
これまでのところ、 Project Tango ConstructorやVoxxlrなど、私が試したいくつかのアプリは短期間でうまく機能します (他の潜在的なスキャン アプリの推奨事項を喜んで取得します)。問題は、アプリに関係なく、スキャンを長時間実行すると、スキャンが非常に多くのドリフトを蓄積し、最終的にすべてがずれて台無しになることです.
空白の壁のような特徴のない空間にデバイスを向けたとき、または天井をスキャンするためにカメラを上に向けたときも、ドリフトの可能性が高くなります。デバイスは一時的に方向を失い、それによって将来のスキャンの位置合わせが破壊されます。いずれにせよ、デバイスがどこにあり、何を指しているのかをデバイスに認識させることは、私にとって問題です。
3D スキャン アプリの中には、アプリの起動時に領域学習を許可する許可を求めてくるものがあるため、一部の 3D スキャン アプリがある程度領域学習を使用していることは知っています。これは、デバイスの位置を特定し、姿勢を安定させるためだと思います (不正確な場合は訂正してください)。
私が試したアプリでは、独自の ADF をロードするオプションはありませんでした。私の理解では、慎重に学習した機能豊富な ADF を読み込むと、デバイスのポーズをより適切に固定するのに役立ちます。ユーザーが自作の ADF にロードできるアプリがこのように不足していることには理由があるのでしょうか? 難しい/不可能ですか?現在のアプリは、領域学習をローカライズするためにすでに最適に活用していますか? また、私が提供する自己記録型 ADF はこれ以上優れたものはないのでしょうか?
このトピックに関する指針/指示をいただければ幸いです。3D スキャンと再構成で ADF を使用する方法と有効性は明確に文書化されていません。最終的には、Tango を使用して高品質の 3D スキャンを作成する方法を探しています。写真に ADF が必要ない場合は、それで問題ありません。答えが、私が不可能な仕事に取り組んでいるということなら、私も知りたいです.
既製のソリューションがまだ利用できない場合は、点群を自分で処理しようとしても構わないと思っていますが、おそらく言うは易く行うは難しだと感じています。
time - NTP を使用した後でも時刻がずれることはありますか?
サーバーの時刻を同期するために、サーバーに NTP がインストールされています。サーバーの時刻がずれる可能性はありますか? はいの場合、どうすればそれを検出できますか? 特定の最大ドリフト後にサーバーを強制的にリセットできますか?
javascript - インターバルJavaScriptの正しいドリフト
これは、Javascript または数学の問題である可能性があります。
システムのクロックからずれないように間隔を空けようとしています。また、実行時に間隔を変更できるようにする必要があるため、ほとんどの cron ライブラリは目的を果たしません。私が話している時間スケールは 10 ~ 5000 ミリ秒です。私の関心事は、微精度のタイミングではなく、長期的にゼロドリフトを維持することでした。
間隔を設定する簡単なソリューションを作成しました。コールバック関数は、間隔が実行された回数を比較し、「間隔」が実行されているすべての時間で割ります。合計時間/反復は、反復が発生した正確な全体的なドリフトを示します。これにより、ドリフトが蓄積されないことが保証されます。反復の最後の実行からの時間を測定しても、ドリフトが蓄積されていないことは保証されません。私の例では、「正確な」間隔ごとに MIDI ノートを再生します。
テストアプリ:
私の問題は、レートが変更されると、ドリフトの回復が遅くなることです。実際、targetInterval-(elapsed/iterations); であるため、ドリフト回復は無限です。常にゼロに近づきますが、ゼロになることはありません。したがって、間隔に追加される余分なものは、ちょうど十分ではありません。乗算を試みましたが、これにより回復間隔が誇張され、同じ数学原理が依然として存在し、全体的な回復を回避しています。回復率を量子化 (ceil) しようとする必要がありますか、それともより数学的に意味のある解決策がありますか?