1

センサー(加速度など)( SensorEvent.timestamp)とGPS(Location.getTime())によって測定された値のタイムスタンプを同期する方法はありますか?
SensorEvent.timestampは、デバイスが起動されてからのナノ秒(現地時間)です。Location.getTime()は、1970年(グローバル時間)以降のミリ秒です。

私が考えていた解決策の1つは、現地時間と全地球(GPS)時間の間のオフセットを計算することでした。ただし、問題は、ロケーション内の時刻がGPSメッセージがデバイスに到着した時刻であるということですが、デバイスのGPSユニット(呼び出し方法がわからない)が位置を計算してそれをアプリケーションに転送するため、メッセージが到着した現地時間を計算できません。メッセージの到着から処理されるまでの遅延は数100ミリ秒になる可能性があることをどこかで読んだことがあります(どこを思い出せないか)。そのため、GPSデータと他のセンサーからのデータとの間に常に高いオフセットがあります。アプリがロケーションメッセージとロケーションのタイムスタンプを取得する現地時間をアルギンします。
GPSメッセージの処理に正確にかかる時間を把握する方法はありますか?または、測定値を同期する別の方法はありますか?

値を同期したい理由は、データにフィルター(カルマンフィルターなど)を適用したいからです。このために、センサー値とgps値の間のオフセットをできるだけ正確に計算したいと思います。

4

1 に答える 1

1

通常、Pulse Per Second (PPS) 信号は、測定時間をローカル クロックにリンクするために使用されます。GPS 受信機は、測定の瞬間にパルスをトグルします。このパルスは、ローカル クロックを使用してタイムスタンプが付けられます。Android フォンでは、これは利用できません。

処理時間と送信時間に起因する遅延に加えて、GPS ソフトウェアでのフィルタリングによってさらに遅延が発生する場合があります。この遅延は、使用する衛星の速度または数に依存する場合もあります。

両方からの信号を比較することで、GPS データとセンサー データ間の遅延を「調整」できる場合があります。例: 加速から減速に移行すると、携帯電話の加速度計と GPS 速度ではっきりとわかります。ただし、遅延の精度が十分に得られるかどうかは疑問です。遅延を推定するカルマン フィルターに状態を追加することもできます。

于 2012-07-13T11:39:30.157 に答える